[网站源码]代码审计入门之BlueCMS v1.6 sp1

  • A+
所属分类:网络广告联盟
摘要

*本文原创作者:小白源码资源站聂风,本文属于FreeBuf原创嘉奖计划,未经容许避免转载0×00媒介大年夜家好,我是聂风,在此,我做一个复杂的代码审计文章分享来便利同学们进修。BlueCMSv1.6sp1不时以来就是PHP代码审计入门的最好良品。此次我们就选择这一个

*本文原创作者:小白源码资源站http://www.526bt.com/account?__preferral=41b2453033.2042:ZKAQ聂风,本文属于FreeBuf原创嘉奖计划,未经容许避免转载
0×00 媒介
大年夜家好,我是聂风,在此,我做一个复杂的代码审计文章分享来便利同学们进修。BlueCMS v1.6 sp1不时以来就是PHP代码审计入门的最好良品。此次我们就选择这一个案例停止进修。我先声明,我的代码审计方法是针对代码基础较为单薄较单薄的人群停止代码审计。
小白源码资源站http://www.526bt.com/account?__preferral=41b2453033.2042
0×01 情况搭建
Phpstudy

BlueCMS v1.6 sp1源码

代码审计对象(Seay源代码审计系统)
0×02 代码审计过程
拿到一个CMS,有诸多审计方法,我这里的审计方法是黑盒+白盒测试,偏黑盒较多的代码审计。拿到代码后我们应当先对其停止功用点的剖析,看一看该CMS存在哪些功用,因为我们寻觅破绽,必然是从网站中的正常功用停止测试,这是黑盒测试的一个方法,开掘破绽的中间我认为在于传参,知道每个传参的意义是否是就等于知道了代码会做甚么,要做甚么呢?

这是我总结的BlueCMS v1.6 sp1的功用点:

正常而言,我们先将CMS停止一个装置,正常而言CMS的源码放入web目次下后我们会访问install目次,然后停止装置。装置完后我们是否是应当以平安工程师的身份去想想,我们可否可以再次访问install目次,停止从新装置呢?假设可以停止从新装置,是否是便可以将全部网站的数据全部重装,然后拿到设置新的办理员账号,然后经事先台拿到webshell?

然后我们去访问该页面,正常,可以重装:

因而我们审计出了代码的第一个后果,可以重复装置呢!是否是很复杂?

然后我们再来看这个网站,通俗而言网站有展现类和功用类:

展现类(比如往事站、门户站)

功用类(比如商城、OA、系统)

然则不管是展现类照样功用假设我们可以拿到一个通俗用户的权限是否是越发轻易浸透测试?测试的点是否是更多?

那么我们去注册一个账户吧!

注册一个账号,我们想想,是否是可以测验测验停止一个XSS,我们先注册一个账号,然后抓包看看,然后我们输入了用户名后,我们发明burp抓了一个包:

很清晰这个数据包是用来检测你的用户名可否有人注册过,那么我们是否是可以经过爆破user_name传参停止爆破出用户名。(爆破出用户名后爆破暗码更轻易)

然后填完一切内容,提交,然后抓到了数据包,我们发明是被提交到user.php:

然后我们经过代码审计对象去找阿谁文件。

在传参中我们看到了我自己输入的“账号|暗码|邮箱|验证码”,然后最后出现了一个act传参,翻开这个user.php我们可以看出这个文件有好几个功用,act就是决定我的数据包是干甚么的传参,因而乎复制这个传参值去源码中寻觅这个传参:

这段源码就是关于你的注册,我们可以看到INSERT INTO拔出,然后我们看可否存在过滤,很清晰这里没有过滤,那么我们测验测验停止XSS和SQL注入。

我们就先看XSS。

先抓包,正常的填写注册,然后将数据包阻挡(这是为了防止前端检测)

修改数据包,参与XSS语句,我是在邮件的中央加的。

胜利弹窗:

抱负证实这里存在一个存储型XSS,然后我们再去看看SQL注入:

这很清晰是他的SQL语句,然后我们测验测验应用updatexml的报错。

构建下语句:
'or updatexml(1,concat(0x7e,(SELECT database())),1),1,1)#
然后履行,居然胜利履行了。没有过滤?居然能胜利履行,说明单引号没有起感化,是否是存在魔术引号?尝尝宽字节!
%df' or updatexml(1,concat(0x7e,(SELECT database())),1),1,1)#
然后胜利报错:

很清晰这里存在SQL注入,然则这里奇异的很,我这里报错说语法毛病,我直接去当地履行却没后果!源码中对报错做了限制。只能经过盲注来处理,舒服!

我们仔细思考,这里是一个拔出语句,那么我们是否是可以测验测验拔出多行数据,我们经过语句构建,再建立一个用户,然后用子查询填充邮箱处,然后我们上岸这个账号是否是便可以看到邮箱字段外面的内容,走,说干就干!!

构建语句:
%df',1,1),(100,0x6162717765,md5(123456),(select database()),1,1)#
闭合原本的语句,然后再拔出一条数据,然后履行,胜利履行了!!

数据被拔出了,走,上岸账号:

很清晰,库名在邮箱处显示了,与仿佛我们可以经过如许的方法应用这个点!!

我们完毕了注册功用在看看登录功用,登录处会不会存在SQL注入?

老模样,登录,然后抓包看传参到阿谁文件:

照样阿谁文件,就是act变成了index_login:

登录还定义了函数,右键函数追踪一下:

照样老模样,没有任何过滤,那么尝尝全能暗码吧:
payload:%df’) or 1=1#
全能暗码胜利登录。

全能暗码就是存在POST类型的SQL注入,可以测验测验应用SQLMAP。

我是跑数据包,在pwd字段。

然后登录后修改资料处也存在SQL注入和XSS。

然后我们看到了他人的文章,我们看到我们可以评论:

然结果断评论,我测验测验了不登录也是可以评论,然后我们抓包看看吧!

去看看这个文件:

这里仿佛有一个过滤。

Htmlspecialchars会将尖括号转化为HTML实体,那么不能出现尖括号。

然后呢这里我们来玩一个骚套路,我们看到传参外面有ip对吗?

留言记录IP这个是留言系统中经常存在的套路。那我们看到了他实践上拔出了ip的值是特地拼接是,是由这个自定义函数设定getip()。

走,我们去找找这个函数的定义:

找到了定义的函数,这里有一个getenv,实践上就是获得系统的情况变量。

第一个HTTP_CLIENT_IP这个情况变量没有陈规范,很多效劳器完整没法获得。

第二个X-Forwarded-For这个器械可以经过HTTP恳求头来修改。

那么后果来了!

我们仿佛可以控制恳求头中的X-Forwarded-For控制ip的传参,ip的传参会直接被拼凑到SQL语句,走!我们SQL注入去(相似的后果挺多的,黑盒白盒我都碰到过)。

设置X-Forwarded-For为1′#。

然后直接报错了:

因为这个不是输入,连宽字节都省了,假设这里没有宽字节注入便可以如许来注入:

外面还有些SQL注入和XSS的破绽我就不一一列举了。

我们看一点纷歧样的,在后台我看到了可以备份数据库:

发明他是依照日期生成备份文件,我们测验测验爆破地址:

然后胜利访问,外面有办理员账号暗码(暗码就是MD5,解密下就行)。

我们再来讲一个更有深度的破绽–文件包罗。

还记得前面看了好几次的user.php吗?

经过全局寻觅include,我发明外面有一些滑稽的器械:

我们可以经过传参pay来控制包罗的文件。

我们先测验测验正常操作让act传参pay,然后我发明这个传参是在充值中间的购置充值卡的中央的选择支付方法:

然后我们先在网站根目次留一个1.txt,内容写:

然后测验测验拼接。

经过跳转到下层目次,然则我们发明这个语句前面有一个index.php的拼接。那该如何办呢?在这里我们可以测验测验一个字符串截断的方法(Windows的门路不能超越256个字符)。

那么我们是否是可以测验测验在传参的前面加点停止阶段,因为点最后会被windows给处理掉落,然则填充了点以后,只会保管包罗前面的1.txt,在传参后的index.php因为门路超越256个字符后的器械都邑被舍弃,因而乎我们直接传参后加256个点便可以截断了。
Payload: pay=/1.txt................................................................................................................................................................................................................................................................

那么我们该若何应用,看看有没有中央可以上传,找到头像上传,然后上传图片马:

然后包罗这个文件就行:

0×03 总结
其实该CMS所存在的破绽不只仅只要这些,我文章中的这些也只是一个抛砖引玉,只是说出一个更适宜代码基础单薄的同学停止代码审计的方法,假设我文章中有甚么写的可以再改良的中央,可以随时联系我!感谢大年夜家破费了时间来读不才的粗俗小文,感谢大年夜家。

*本文原创作者:ZKAQ聂风,本文属于FreeBuf原创嘉奖计划,未经容许避免转载

分享当前页面将至少获得10%佣金,点此获取推广链接(规则说明)。

本站VIP源码资源永久免费下载!持续更新!www.526bt.com

加入999永久VIP会员带做项目包赚钱!教引流包搭建,社群资源共享!

新项目更新通知QQ群:767688774 站长技术交流QQ付费群:552760713

点击这里给我发消息备用QQ:点击这里给我发消息

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 源码安装视频教程
  • 教程项目网赚APP扫码下载
  • weinxin

小白源码资源站!站长!
彩世纪电脑+手机全套-建站 编号: 1053
月入30万的在家创业开淘宝的教程!收徒!一对一指导!包赚钱!
域名快速备案个人网站企业公司网站域名快速代理备案快速服务|网站快备
做网站 PHP源码修改二次开发程序页面美化/功能定制/仿站/仿模板
点击注册

发表评论

您必须才能发表评论!