根据敏感函数来逆向追踪参数的传递过程,是目前使用得最多的种方式,因为大多数漏洞是由于函数的使用不当造成的,另外非函数使用不当的漏洞,如SQL注入,也有一些特征,比如Select.Insert等,再结合From和Where等关键字,我们就可以判断这是否是一条SQL语句,通过对字符串的识别分析,就能判断这个SQL语句里面的参数有没有使用单引号过滤,或者根据我们的经验来判断像HTTP头里面的HTTP_CLIENT_P和HTTP_X_FORWORDFOR等获取到的IP地址经常没有安全过滤就直接拼接到SQL语句中,并且由于它们是在$_SERVER变量:中不受GPC的影响,那我们就可以去查找HTTP_CLIENT_IP和HTTP_X_FORWORDFOR关键字来快速寻找漏洞这种方式的优点是只需搜索相应敏感关键字,即可以快速地挖掘想要的漏洞,具有可定向挖掘和高效、高质量的优点。其缺点为由于没有通读代码,对程序的整体框架了解不够深入,在挖掘漏洞时定位利用点会花费一点时间,另外对逻辑漏洞挖掘覆盖不到。注入挖掘案例这次找个espcms应用程序为事例演示整个注入漏洞的查找过程,首先我们得先把项目导入到Seay审计系统中,然后点击自动审计功能,系统会自动帮我们扫描可能存在的漏洞。这里我们选取第26条SQL注入漏洞数据,双击进入定位到该SQL语句中可以看到非常直观地看到$parentid变量是怎样获得的然后我们定位accept函数的实现方法,选中accept函数并右击定位函数即可。我们可以看到我们传入的变量parentid和R参数代表的是POST、GET中获取的值,最后一个经过了daddslashes这个函数进行处理从这条SQL语句中我们可以看到对单引号等字符进行过滤,并不需要闭合,可以直接注入。
$sql="select*from$db_tablewhereparentid=$parentid";接着,我们定位到citylist.php这个文件中,看到oncitylist这个函数在important这个类中,点击全局搜索功能,双击进入index.php这个文件可以看到这里存在一个include文件操作,但是经过了daddslashes函数的操作,我们无法进行截断使其包含任意文件,只能包含本地的PHP文件,若拥有本地的MYSQL的root权限,导出到tmp目录中就能实现文件包含注入攻击这里我们构造一个EXP的URL进行完成注入
转载请注明:http://www.aierlanlan.com/cyrz/870.html