前言
根据敏感函数来逆向追踪参数的传递过程,是目前使用最多的一种方式。因为大多数漏洞是由于函数的使用不当造成的。这种方式的优点是只需搜索相应敏感关键字,即可以快速地挖掘想要的漏洞,具有可定向挖掘和高效、高质量的优点。
注入挖掘案例
这里我们使用espcms这个应用程序为事例演示整个注入漏洞的查找过程,首先我们得先把项目导入到Seay审计系统中,然后点击自动审计功能,系统会自动帮我们扫描可能存在的漏洞。
这里我们选取第26条SQL注入漏洞数据,双击进入定位到该SQL语句中
可以看到非常直观地看到$parentid变量是怎样获得的
然后我们定位accept
函数的实现方法,选中accept
函数并右击定位函数即可。我们可以看到我们传入的变量parentid和R参数代表的是POST
、GET
中获取的值,最后一个经过了daddslashes
这个函数进行处理
从这条SQL语句中我们可以看到对单引号等字符进行过滤,并不需要闭合,可以直接注入。
$sql = "select * from $db_table where parentid=$parentid";
接着,我们定位到citylist.php
这个文件中,看到oncitylist
这个函数在important
这个类中,点击全局搜索功能,双击进入index.php
这个文件
可以看到这里存在一个include
文件操作,但是经过了daddslashes
函数的操作,我们无法进行截断使其包含任意文件,只能包含本地的PHP文件,若拥有本地的MYSQL
的root权限,导出到tmp目录中就能实现文件包含注入攻击
这里我们构造一个EXP
的URL
进行完成注入
http://127.0.0.1/espcms/adminsoft/index.php?archive=citylist&action=citylist&parentid=-1 union select 1,2,user(),4,5