实战练习是在一个公众号上学习的

代码审计实战一_赋值

 

推荐一下,文章写的很好,特别是选取的cms都很适合新手,文章中说这个cms漏洞比较多,没想到是真的,我这个新手也能找到几个漏洞   :)

我个人比较喜欢敏感函数回溯参数过程这种审计思路,这次练习的cms是熊海cms

在这里我只说一下文章中没有提起的漏洞,我为什么说文章写得很好呢,就是因为新手也能找到漏洞,这令我有更大的动力去学习

话不多说,直接搜索关键字select

代码审计实战一_sql语句_02

 

第一个是这种没有变量的语句

代码审计实战一_sql语句_03

 

这种没有办法控制,是没有注入的

在columnlist.php中发现了一个查询语句

代码审计实战一_赋值_04

 

看似有一个可以控制的变量,往上回溯,查找他的来源

发现在这里只是查询处数据库字段的值

代码审计实战一_php_05

 

然后将查询出的$nav的id值赋值给$navid,中间无法控制,

代码审计实战一_sql语句_06

 

 所以这种情况也无法注入

再往下面继续找

代码审计实战一_sql语句_07

 

这个就很明显了,先判断type的值,然后get到的id值直接拼接到sql语句中执行,很明显是存在注入的

但是在最上面包含了一个文件,checklogin.php

这里因该是检查是否登录,因此这个是一个后台的sql注入,

验证一下

代码审计实战一_数据库_08

 

 下面的editlink.php也是一样的情况,也是一个后台的注入

代码审计实战一_sql语句_09

 

 后面一样的就不说了,还有几个这种的

然后在下面的一个top.php中发现了一个cookie注入

代码审计实战一_数据库_10

 

通过获取cookie中user的值,然后拼接到sql语句中查询

这个参数user是登录后才会出现在cookie中,经测试,未登录的时候添加在cookie中并没有注入

直接访问好像也不行,可能是模版文件之类的,(我也不太懂,轻喷)然后我就找那些文件包含了top.php

直接搜索,发现全是后台文件,也是一个后台的注入

代码审计实战一_赋值_11

 

随便找一个页面进行测试

代码审计实战一_数据库_12

 

其他的注入估计还有一些,就不再找了,下面还有一个无意中发现的一个存储型xss

还是老方法,直接搜索echo等输出函数

代码审计实战一_搜索_13

 

在一个editlink.php中发现echo了好几个东西

代码审计实战一_搜索_14

 

我以为还是从数据库中查出来然后输出的

往上找了一下,发现并不是

代码审计实战一_搜索_15

 

在这里发现是通过post接收的

然后在下面更新数据库中的值

代码审计实战一_搜索_16

 

 没有任何过滤直接存储到了数据库中,在后面输出

代码审计实战一_赋值_17

 

测试一下

编辑链接

代码审计实战一_数据库_18

 

随便找一个框输进去payload

代码审计实战一_数据库_19

 

代码审计实战一_数据库_20

 

 成功弹出cookie

代码审计实战一_赋值_21

 

--------------------------------------------------------------------

这个cms洞实在太多了。。。

未完待续