前言
此篇是关于sql注入挖掘的初级审计思路
本cms的安装程序在ino.php,数据库需要5.5的,5.7会报错
关键字搜索
SQL注入: select insert update mysql_query mysqli等(注意大写)
开始:

(注意点击不区分大写,我这里没有点击)
当点开这个文件的时候基本会发现全是无过滤的sql语句
随机抽取一个函数进行全局搜索

在v144.php中有应用,那么我们就去访问一下v144.php

定位一下这句话:从哪里来,滚回哪里去!

需要域名在sohuquan这个数组里面,继续跟踪:$sohuquan,代码就在上面:

也就是说需要domain就是判断referer是否在本官网下过来的,因为我当前是没有referer的所以会给我出现这个问题
解决问题:
- 可以直接将这一部分的代码删掉,毕竟是本着挖掘sql注入漏洞来的
- 修改a herf标签来简单伪造referer
- 利用插件高效率决绝问题
我采用第三种:
紧接着又出现新的错误,我们继续跟踪文字:

可以判断应该是需要参数:

也就是说需要四个参数呗:?api=ok&u=1&p=1&id=1来试试
又出新错误:
继续跟踪:

基本没有什么用
现在可以根据之前跟踪的ywID函数进行注入了:
function ywID($ID){
$SQL="SELECT * FROM `yw` WHERE `id` =".$ID." LIMIT 0 , 30";
$FH=mysql_query($SQL);
$sj=mysql_fetch_array($FH);
return $sj;
}
可以看出来是一点过滤也没有,我先输入1':

出现了报错,而且是三次,很可能是id参数被调用了三次,这里没必要深究
接下来我们用盲注语句来试一下id=1 and if(1=1,sleep(2),0) --+睡了足足有6秒之久!!!
那么这个地方就是sql注入点,限制条件是referer,所以sqlmap直接跑:

到这基本就可以了
本文介绍如何通过审计ino.php中未过滤的SQL语句,追踪并利用SQL注入漏洞。涉及盲注技术,如sleep()测试,最终定位到ywID函数,揭示了未经过滤的id参数。适合SQL注入安全入门者学习.
2839





