0
点赞
收藏
分享

微信扫一扫

每日复盘-20240604

金牛豆豆 2024-06-06 阅读 31
vimphpstorm

[极客大挑战 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了

举报

相关推荐

0 条评论