[极客大挑战 2019]Http
查看源代码,发现了一个Secret.php,前面的
οnclick="return false"
一用鼠标点击就返回错误
访问Secret.php
可以猜到是Referer请求,
有一个特殊:
Referer要在Connection上面,在其他位置不起作用。那就调整位置
利用bp抓包,根据网页的上不来自“https://Sycsecret.buuoj.cn”,说明要调回原来的页面
添加Referer,跳转到https://Sycsecret.buuoj.cn
将User-Agent ,改为Syclover
又得到了,必须要本地ip
使用
X-Forwarded-For:127.0.0.1
Referer
Http Referer是header的一部分,当浏览器向web服务器,一般带上Referer,常用在防盗链和防恶意请求中。
User-Agent
用来传输用户使用的是什么样的浏览器,还可以防止爬虫,会检验User-Agent,只有当用户访问是时候才会传输数据。
X-Forwarded-For
X-Forwarded-For 是用来识别http代理或负载平衡方式连接web服务器的客户端最原始的ip地址的http请求头字段。
很多程序要检测客户端的ip地址,然后赋予相关的权限,比如数据库的读写,文件的读写,选择构造假ip,这里使用的是透明代理
easyre
用IDA打开,按F12+shift,找到flag
reverse1
同样的方法,找到可疑的字符,“this is the right flag! ”,然后x+Ctrl
查看流图
Str2=“{hello_world}”,
大体意思就是用“0”代替“0”
那么flag{hell0_w0rld}
变异凯撒
根据观察,afz-与flag的Ascill码相差分别为5,6, 7, 8 ,那么位移就为1,从五开始
那么编写python脚本
key="afZ_r9VYfScOeO_UL^RWUc"
j=5
for i in key:
print(chr(ord(i)+j),end='')
j+=1
得到flag
flag{Caesar_variation}
爱因斯坦
用010看,完整的图片还有一个zip(文件头:50 4B 03 04)文件
分离出来
打开要使用密码
查看图片的详细信息得到了密码
最后得到了flag
看到了PK,则改后缀名为zip,
直接就找到了flag了。
test_your_nc
nc的全名是netcat,其主要用途是建立和监听任意TCP和UDP连接,支持ipv4和ipv6。因此,它可以用来网络调试、端口扫描等等
[极客大挑战 2019]BuyFlag
打开之后查看源代码,发现了关键信息,要先进行身份验证
解读该代码:
isset在php中用来判断变量是否声明,该函数返回布尔类型的值,即true/false。isset只能用于变量,因为传递任何其它参数都将造成解析错误。
& gt; 和 & lt; 代表大于号> 和小于号&l
考察 is_numeric()函数的绕过和404
(1)数组+16进制绕过
j[]=58B
(2)利用%00和%20绕过
%00放在数值前后都可以,判断为非数值
%20只能放在数值后面
j=1315%20
j=1315%00
(3) php特性绕过
php中当一个其他数据类型和数值类型的数据比较大小时,会先将其他数据类型转换成数值类型
j=9999a
抓包的结果为
想起来要先进行身份验证
cookie:user=0怀疑是身份判断的位置,布尔值0是false 1为true,修改数据包
要用POST方式进行传输,修改为post包
传递参数password=404xx&money=10e9(科学计数法)或者
password=404xx&money[]=100000000(利用strcmp函数特性)
得到了flag
[ACTF2020 新生赛]BackupFile
抓包后也没有什么,用dirsearch扫描一下
最后找到了一个特殊的/index.php.bak 访问一下
用记事本之类的打开
代码审计开始
似乎是弱比较 “==”
在PHP中:
= = 为弱相等,即当整数和字符串类型相比较时。会先将字符串转化为整数然后再进行比较。比如a=123和b=123admin456进行= =比较时。则b只会截取前面的整数部分。即b转化成123。
所以,这里的a = = b是返回True。
那么我们只需一个参数?key=123就可以拿到flag了