区分代码审计分类主要是思路
原生态开发,就是代码都是自己写的,没有用到cms,框架
框架类,是网上公开开源的,或者商业的框架
组件类,是框架搞好了,还需要一些插件,这些就是组件,审计这些插件存在漏洞
前端类,js路径问题等等
两个思路,提供功能找到代码段去分析,通过危险函数去找代码段分析
bluecms,原生开发-sql 正则搜索
这个网上能搜到审计,有代码地址
先搭建好网站
正则表达式搜索
(update|select|insert|delete).*?where.*=
点这个才能进行正则表达式匹配
123个匹配,不可能一个一个打开看,这就需要经验,一是看代码怎么写的,二是要看这个代码在那个文件里面,用户可不控制
这种根据名字能猜个大概
像这个跟我们之前写的不一样,可能就是自定义的,框架类的更特殊,反正以后会经常看见
像这样的地方就不优先看,产生的概率很小
直接找最脆弱
这种的就优先注意
这个值没有过滤,而且前台可以get传入参数值
这时候只需要在看自定义方法是什么就可以
就可以看到那个地方用了这个自定义方法,但这里显示两个文件,具体是那个,就看上面包含了那个文件
看第一个声明的文件,就看到这个函数的使用,返回了数据库取出数据,再去看query是生命方法
再转到这里了,发现就是最原生的执行语句吗,只不过是自己写了方法调用原生代码,我们看不到
而且在这个过程中没有过滤,那就直接进行测试
让他输出进行静态调试,先找到他那个地方能出sql语句出来,不知道是是那个方法
就每一个都打开,让他输出sql语句加不一样的语句,然后根据输出的语句判断是哪一个文件控制输出
这就明显是从第二个文件输出的
没有过滤,不用闭合直接传入参数就能执行sql语句的命令
这里看到有回显,那就不用盲注
emlog-1day-常规注入分析
根据cnvd的提示在后台的某个co文件里面
然后就打开后台文件可能文件找co开头的,
很明显comment的,config是配置文件
ip这里没有过滤代码,优先看这个,看看也没有带入sql语句中去,但上面还有给if判断,需要管理员验证才行。
看一下前面代码的生命发现有sql语句,而且变量也在里面
复制这个文件路径,访问登陆进去
根据代码发现要让action=delbyip才行,怎么让他等于,接着分析代码
代码没看到action怎么传参的,看看他的包含文件
看到了传参过程
权限不足,这是为什么,转到上面的if声明
可以传入token,那把登录管理的token值对比以下就行了,还注意代码里面有跳转,把跳转关一下,更好的测试
sql语句,但是这个本身是没有回显的,所以需要用到盲注,报错注入(开启报错回显)
用户名注入出
emlog 2.1.9slq注入,1day未公开
看cnvd简报
admin/user.php有漏洞
开始分析,但是代码好多,那么多方法都需要转到声明去看,这就太麻烦了,这就有一个工具检测sql语句执行,(像input可能就是接受,英语好的代码读的也好)
这些就是经验之谈,源码看多了就能猜到
这个一看就是过滤器
这时候用正则表达式去搜就太多了
(update|select|insert|delete).*?where.*=
假如不会跟踪或者不太会定位也没有更好的方法?有的兄的有的,数据执行监视器
访问一下网站
就看到了执行的sql语句
按逆向思维就看那个sql语句貌似用户可控,再去代码中找
正向看方法声明
逆向演示
登录进后台直接访问注入产生路径,避免过滤垃圾语句
这就可以直接文件搜,不过需要正则表达式写得好。
找到代码段之后,看sql语句应该是admin我可以控制,但是admin从来传递的也不知道,别的语句都写死了
看方法的时候只有这一个变量
看变量应该还是可控的,看传递的值获取,如果limit为空,就等于limit,如果emali有值就等于email,如果nckname有值就等于nckaname
现在就去看getuser是怎么传参的
再看声明
又回到user.php,那就是这里了
但上面email有等于变量nickname为空,就很奇怪,那admin怎么来的,在上面还有email=keyword,这怎么搞,关键就围绕着admin搞
admin是管理员的值,那他是怎么获取的?
这可能想到那改用户名呢
不可能,用户用户名是会被随即更改的,而且自己不可修改
那这种情况接下来该怎么办,这就已经怀疑是二次注入了
看其他功能
这里导入备份,那用户名是不是就可控了?.
就在导出备份这里改一下
INSERT INTO emlog_user VALUES('110','','$P$BQ7u19mvkZiync6Zgn2/oOebQdI5yd0',(select version()),'writer','n','','dad@123.com','','','0','1741701033','1741701033');
再看用户
注入成功
思考,这里需要我们添加数据控制用户名,除了注册哪里还可以,那就数据点,别的上传,留言板啥的不可能
jian
kang