Training-WWW-Robots
robots协议保存在robots.txt文件里,是机器人排除协议,那我们就直接访问一下robots.txt
他说不允许访问/fl0g.php,那我们就在试一下
获得flag
robots
打开url是个白面网站,我们还是直接访问robots.txt
在访问一下flag_1s_h3re.php
获得flag
php2
你能登陆吗?
通常php的脚本在.php上,比较经典和常见的就是index.php,尝试访问一下
能够正常访问,说明是存在,php文件源代码是在phps里存放,再次访问
然后查看页面源代码
7.8行是页面源代码的核心,urldecode是PHP函数,解码经过URL编码的字符串,解码回原始的形式,url编码中的某些字符被替换成%后面跟俩位十六进制数
urldecode可以对admin进行全部或者部分编码,a就成了%61,%又会被url再次进行编码就成%25
所以admin成了%2561dmin
simple_php
看代码,a得等于0才会输出flag1,那就直接访问
获得了前半截flag,后半截就得满足b,赋予b非数值型的字符串同时参数值要大于1234,于是可以使用数字加字母混合的方式,他在判断时会将字符给抹去,然后再进行判断
easyphp
进来就是一大串代码,先看最后的if,说key1和key2都等于1才会出现flag,要满足这个条件的话需要abc都满足,再看第一个if,a得>6000000还得<=3,这就得科学计数法了,1e8就可以
再看b,md5,最后几位还得是8b184b这个需要写一个脚本去运算,可以找一个在线工具,得到结果53724
import hashlib
for i in range(100000):
m = hashlib.md5()
m.update(str(i).encode())
h = m.hexdigest()
if h[-6:] == "8b184b":
print(i)
break
现在在来考虑c,c是最麻烦的一个,m不能是数字,得大于2022,随便加个字母就可以
Array_search():查找数组中的元素并返回其下标。
元素n的下标是DGGJ
但是如果n的下标是DGGJ,程序就会终止,必须得绕过,array_search()在查找元素的时候是进行弱类型比较,在PHP里字符串==0是成立的,即“DGGJ"==0是成立的,因此,要保证在c["n"]中有0,即可绕过array_search的判断。
然后就得构造成?a=1e8&b=53724&c={"m":"2023b","n":[[],0]}