前言:这段时间做了一些XCTF的web进阶题,真的是学习到了很多知识,就来总结一下。
Cat
一开始以为是命令注入,恰好最近学习了命令注入,就先来测试一下:
输入127.0.0.1
,发现是可以ping
通的
输入127.0.0.1 | phpinfo()
或127.0.0.1 & net user
就会显示:
Invalid URL
看来命令注入的方法是行不通的(其他连接符也被过滤了,如&&
、||
等)
没有思路了,就看了大师傅们的Write Up
,大意就是在URL那里构造错误的参数,使页面进行报错,通过页面报错从中找出需要的信息。
当输入?url=%79
执行完时变成了url=y
看来可以传递url编码,服务器会接受并进行解析,所以这里就构造最大的参数看是否会报错。
HTML URL 编码
输入:
?url=%ff
发现确实报错
其实在字符编码方面,ASCII码在标准符号、数字、英文等取值范围是0~127
,扩展ASCII码为128~255
,url编码使用的是16进制,一般后台允许输入也是标准的ASCII码而不是扩展ASCII码,所以当输入的参数ASCII码大于127
时便会报错。
报错出来了就从中找有用的信息,发现: