事先声明,本文只用来学习交流,不参与以任何商业形式的活动。本文不会出现flag。
web40
源码
发现过滤了所有数字,以及大部分的字符,但仔细观察可以发现,括号是中文的括号,因此我们可以利用这点,来进行无参RCE
可以利用p神的无参数RCE来做,利用localeconv()函数来做,也可以用异或和取反来做。
我这边用的是get_defined_vars()函数。
get_defined_vars():返回由所有已定义变量所组成的数组
因此我们可以
发现一堆乱七八糟的
利用current函数将回显的东西显示与我们相关
然后随便定义一个变量,发现会回显会多出来自定义的变量,并且自定义的变量在最后面,
我们可以用end函数来指定最后的变量,用system()函数来执行系统命令
最终获取flag
web41
这题把自增异或跟取反都给过滤了,本人技术有限,此题不会
web42
此题有很多方法绕过,比如 ; ,%0a,&&(&记得编码)等,都能绕过,
web43
过滤了 ; 和 cat ,; 可以用%0a 绕过,cat 可以用tac绕过
web44
与上题原理相同,用通配符*可以绕过
web45
这题多过滤了一个空格,空格可以用${IFS}绕过
web46
好家伙,一次性把$和*都过了,这时需要重新编写payload,继续用%0a绕过 >dev/null 2>&1,用%09绕过空格,用?绕过*
web47
这个题目新增的过滤条件都是查看文件内容的,但是我们用的是tac查看,所有我们依然可以用之前的payload
web48
这个题目新增的过滤条件都是查看文件内容的,但是我们用的是tac查看,所有我们依然可以用之前的payload
web49
这下把%过滤了,之前的payload依旧能用。因为%09和%0a经过url编码了
web50
这下把%09给过滤了,可以用<>来绕过空格
但是用<>就不要用?
可以用""来绕过flag
web51
这回把tac也给过滤了,不过没事,还有nl可以查看文件
payload:
web52
这回把<>这两个符号给过滤了,但是,之前过滤的$符号给去掉了,所有我们可以用$来绕过空格
但是发现不在这个文件了,查看了当前目录,只有flag.php和index.php,所以我们把目标放到/根目录
发现flag,然后nl查看就行
web53
首先分析代码,发现他会执行我们传入的参数,然后把结果打印出来
这是我们可以先查看当前目录下的文件
依然去看flag.php,得到flag
web54
这个过滤看到有点乱,但是不要紧,过滤大致意思是只要输入的字符中,包含上面任意一种,就不给你过,就比如cat ,caaaatttt也不行,但是cbt可以,就这种意思
所以我们可以用多种方法绕过
查看文件的命令除了过滤的,还有一大堆,我这次用的是patse,flag.php可以用fla?.php绕过
web55
过滤了所有的字母,但是没过滤数字,我们可以用base64命令,把flag.php的内容打印出来,
但是base给过滤了,可以用?代替,然后解码出来flag
web56
这题把数字也给过滤了, 我们可以用p神的无数字字母webshell,通过 . 来进行执行命令,需要先构造一个post上传数据包,上传一个文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>上传数据包</title>
</head>
<body>
<form action="url" method="post" enctype="multipart/form-data">
<label for="file">文件名:</label>
<input type="file" name="file" id="file"><br>
<input type="Submit" name="Submit" value="提交">
</form>
</body>
</html>
在上传的文件里,添加
#!/bin/sh
ls
然后上传的文件会默认上传到/tmp/php??????这里,路径可以通过?绕过,然后通过p神的文章了解,可以用[@-[]来匹配大写,最终payload为?c=. /???/????????? 文件的内容需要改,才能看到flag
web57
这题当时做了我非常久,逻辑思维要强
这题已经在题目前说了,flag在36.php里,所有我们只需构成36就行,但是这个过滤了超多的符号,但是~${}没过滤,linux通过~${}可以进行运算
附上payload
web58
此时由get传参变为了post传参,并且看上去啥都没过滤, 其实已经通过disable_functions禁用了一大堆函数,此时需要我们不断尝试,才能得到flag,这边只提供思路(一般来说,这种题应该禁用了执行系统命令函数,所有我没用)
首先我们要先查看当前目录下的文件(这是我做题的习惯)
看到flag文件
直接查看
web59
用上面的payload一样可以通过
web60
上面的payload一样可以用。
一题的payload能过三题,赚了