官方公众号企业安全新浪微博
FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。
FreeBuf+小程序
0x00 BlueCms代码审计
第一次学习做代码审计,为此记录一下学习经验。从网上下载bluecms 1.6源码,本地搭建
0x01 SQL注入漏洞
位置:ad_js.php文件
首先看到这里,很明显的一条数据库查询语句,选择这条右键打开文件,来查看源码
可以看到这条语句使用了getone方法执行了sql语句,然$ad_id的获取只是判断了是否为空,如果有值,获取id首尾去空,否则给一个空值,下面if判断如果为空,给出一个error,并退出运行。看到这里他是没有做过滤的,接下来看getone方法
双击选中getone右键定位函数来到函数存在的文件。getone方法获取$sql的传参,直接调用对象执行了语句,并返回。没有做任何的过滤,那么此处就存在了一个sql注入。然后去ad_js.php去传参
访问到ad_js文件不传参会给出一个error。直接给ad_id一个传参,这里我没有访问新闻,所以是空的。那么我们就可以直接在这里构造payload来进行sql语句的执行
传递一个'参数,抛出异常,很明显的一个sql注入。通过sqlmap也可以看到存在sql注入漏洞
0x02 存储型xss
位置:user.php
首先来到注册页面,查看源代码。这里两段代码只是判断了用户的操作问题,后台设置了用户名的长度不能大于16,所以用户名这里不好操作,并且没有判断邮箱的操作,我们就可以在邮箱传入恶意的xss代码
在前端处,存在了验证邮箱的操作,所以需要抓包修改参数
注册成功之后,会在页面弹出xss,然后去后台查看,在会员管理,会员列表处,成功触发xss脚本,可窃取管理员cookie
修改个人资料处同样存在存储型xss,编辑数据的地方,获取用户的传参,没有过滤函数。直接执行
然后去看一下数据库里面的用户表,设定长度小的没法去执行xss,所以这里可以选择邮箱和msn,msn在页面不显示,选择邮箱处,后台一样可以触发xss
0x03 文件包含漏洞
通过自动审计,可以查到该函数可能存在任意文件读取,打开文件源代码
当act变量等于edit的之后,会获取一个tpl_name的get变量,然后去读取,这里也没有经过过滤
直接构造payload即可
0x04 任意文件删除
通过seay的自动审计可以看到可能存在任意文件读取,删除。然后追踪这个文件
看到如下源码,当act等于del_pic之后,会获取id传参,然后调用方法直接执行,此处没有任何过滤
构造payload:?act=del_pic&id=123.txt即可