标准一句话木马
标准一句话木马
解题过程
1 |
|
由题目可知本题考查的是标准一句话木马。
搜索有关一句话木马的资料,发现其中核心是对’eval’发送’post’请求,来执行php代码
所以我们首先查阅关于post的相关资料,记录与get请求的不同
从w3schools得到的标准答案的区别如下:
GET在浏览器回退时是无害的,而POST会再次提交请求。
GET产生的URL地址可以被Bookmark,而POST不可以。
GET请求会被浏览器主动cache,而POST不会,除非手动设置。
GET请求只能进行url编码,而POST支持多种编码方式。
GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
GET请求在URL中传送的参数是有长度限制的,而POST没有。
对参数的数据类型,GET只接受ASCII字符,而POST没有限制。
GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
GET参数通过URL传递,POST放在Request body中
重点在于post主要放在request中传递参数,下载postman,利用phpinfo测试是否可以利用进行任意代码执行,测试发现成工,我们利用system函数调用shell命令进行flag查找。
总结flag可能出现的三个位置:
1.文件某位置
通过ls命令查看文件,得到如下界面
获取flag文件,接下来查看flag文件中的内容还获取flag字段,通过执行cat flag.php
命令发现字段出现被过滤的情况。通过测试空格,cat命令等字段发现并没有出现常规过滤,考虑到可能是对flag
进行了处理
,于是采用base64
将文件内容进行加密,绕过过滤,成功得到一部分flag
2.在根目录中寻找flag
。
通过ls
命令查找根目录下的文件,发现flag2
。
同样根据base64进行加密再解码
3.在环境变量中寻找flag
通过查找环境变量的使用方法,查看本题的环境变量、
本题三个flag全部找到