CTFShow文件上传WP(持续更新)

这里记录一下我的ctfshow文件上传练习的过关总结,因为是小白,所以对一些知识点的理解也许不对,希望有什么不对的地方,大家可以交流一下。会持续更新的哦!

153

#153是后端对.php进行了拦截,所以burp修改filename是不行的,所以要用到**.user.ini**绕过(在网上的wp了解到.user.ini是Apache和Nginx都可以,但是.htaccess只能是Apache,然后这道题是Nginx的,所以只能用.user.ini。至于怎么查出来是Ngnix的,目前我也看不懂)
方法就是:
1.上传.user.ini文件,内容是:auto_append_file="a.png"或者是auto_prepend_file=“a.png”
2.上传包含一句话木马的名字叫a.png的文件,木马随便在网上找一找就可以,我用的是

 @eval($_POST[1]) ?>

先说一下我对原理的理解:.use.ini文件可以把php文件的前面或者后面加上了我们上传的木马内容,当我们访问php文件的时候,木马被执行,就可以进入了。而可以用这个方法的重要条件就是这个网页里面有一个叫index.php的文件,最后我们访问的也就是这个文件。
CTFShow文件上传WP(持续更新)_第1张图片

154、155

#154和155都是一样的,需要用到.user.ini绕过+短标签绕过,你会发现他现在不只在前后端都进行了php过滤,现在还在内容上进行了对php的过滤,那不出现php不就行了,.user.ini不变,一句话木马我们用短标签就可以了。
后来又试了一下把php改成PHP看木马能不能执行,结果可以,所以又有了法二,将一句话木马改成,最后也可以了。

156

找了网上的wp发现是过滤了[],那么把它改成{}即可。

157-159

#157-159过滤了分号还有()等等,因为我们之前已经知道index.php在哪里了,所以直接访问就可以了,先上传.user.ini文件,然后上传a.png,但是内容要改成(这里cat被过滤了,只能用tac),最后不用蚁剑,直接访问upload/index.php即可。
反引号:他相当于system()函数,而system()函数的功能相当于执行他后面的系统指令tac。
再解析一下tac后面的内容f*是正则表达式,*代表前面的字符出现0到很多次,+代表出现1到很多次,?代表出现0或1次,而…/则代表文件的上级目录,连起来用就构成了一个完整的路径

160(日志包含漏洞)

#首先需要明白:
1.包含漏洞包括本地包含漏洞和远程包含漏洞
2.有本地漏洞但是还上传不了文件的要用日志包含漏洞
原理是:有一个access.log的文件会记录我们的行动,apache一般是/var/log/apache/access.log,nginx的log在/var/log/nginx/access.log和/var/log/nginx/error.log,我们用include把他们放到图片里,图片再用.user.ini放到index.php里面,然后再把UA改成一句话木马,这样木马被写入log里,log被包含在index里,我们用蚁剑连接即可。
a.png的内容是
UA的内容是一句话木马,这样就可以写进access.log里面了
CTFShow文件上传WP(持续更新)_第2张图片

161

#上传说文件内容不行,那就在每个文件的开头加一个GIF89A就可以了,然后剩下的操作和160一样。

你可能感兴趣的:(小白,ctfshow文件上传过关,web)