知识点
-
.htaccess
- .htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
- 详情可见
-
Thinkphp5远程命令执行漏洞
- 漏洞描述:由于thinkphp对框架中的核心Requests类的method方法提供了表单请求伪造,该功能利用
$_POST['_method']
来传递真实的请求方法。但由于框架没有对参数进行验证,导致攻击者可以设置$_POST['_method']='__construct'
而让该类的变量被覆盖。攻击者利用该方式将filter变量覆盖为system等函数名,当内部进行参数过滤时便会进行执行任意命令。 - 详情可见
17-1 [GXYCTF2019]BabyUpload
做题思路
发现是文件上传,于是尝试上传一句话木马,上传图片马,没被过滤
然后上传 .htaccess 文件 内容为:AddType application/x-httpd-php .jpg
然后抓包,把 Content-Type: application/octet-stream 改为Content-Type: image/preg
之后用蚁剑连接,就找到了 flag
蚁剑连接的url地址:http://b951ecdd-6f4a-47a9-9dd9-4e98eafce3fb.node4.buuoj.cn:81/upload/13fea1b497722036894f5b04605c86cb/flag.jpg
//常见的步骤,还有一种是利用post传输指令,得到flag
17-2 [BJDCTF 2nd]old-hack
做题思路
没有任何思路,看WP
页面提示powered by Thinkphp。说明可能和thinkphp框架有关。也确实如此,这里用到了thinkphp5的远程命令执行漏洞。
利用方法是用POST传参
我们构造一个payload查看一下根目录的内容:
看到了 flag
把ls /换成cat /flag,获得最后的flag