robots协议
知识点
robots协议
robots.txt是搜索引擎中访问网站的时候要查看的第一个文件。当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,所有的搜索蜘蛛将能够访问网站上所有没有被口令保护的页面。
解法
直接打开是空白的,根据robots可知我们访问 http://220.249.52.133:56928/robots.txt
,
获得flag的信息,打开即可获得
个人理解
robots协议是在明面上无法访问到index.php后可以参考的一个相当于目录的东西,但他是约定俗成的,不是硬性要求
ping命令查找
这种情况,我们一般采用一个正确的ip
如127.0.0.1
加上||或&&
再加上linux的查询命令
比如我们要找flag.txt
可以利用find模糊查询
127.0.0.1 && find / -name flag.tx
然后在
127.0.0.1&& cat /home/flag.txt
读取
更多linux查询方法,请参考linux文件查询命令
php代码审计
@的作用
@主要是放在有返回值的地方, 作用是忽略当前代码行执行过程中出现的错误,然后继续执行下面的代码。
弱比较
当时比较好奇,flag1
的条件明明是$a==0&&$a
,那应该是输入a=0就会显现出flag1,然而现实并没有,后来知道这是弱比较。
== 是弱类型比较,两个不同类型比较时,会自动转换成相同类型后再比较值
===是强比较,需要比较值和类型
如果还有疑惑,可以参考这位博主的文章php中的弱比较
之后嘛,就是判断b不能全是数字,且数字连续部分要大于1234,
那么我们构造http://220.249.52.133:52323/?a=0a&&b=1235a
即可绕过
XFF绕过
XFF
具体请参考此博主文章
js代码审计
通过上面的分析发现,不论输什么,都是错误的结果,而且返回
faux password
所以,我们需要根据自己的审计,写一个py文件,解下flag
a = '\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30'
# print(a)
flag = ''
a = a.split(',')
for i in a:
flag += chr(int(i))
print(flag)
即flag:Cyberpeace{786OsErtk12}
详情可以参考这个博主详解