浅谈get型sql注入的手工注入方法

很多人问我怎么手工进行sql注入,在此,我谈一下自己的一点感受,比较初级,大牛请绕道,希望不会被喷!纯属技术交流,严禁非法使用。

在进行sql注入之前,先要搞清楚sql注入的原理。要不然,你会看不懂我接下来要说的东东疑问

SQL 注入(SQL Injection):就是通过将恶意的SQL指令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL指令。

原理:通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所需要的操作。

成因:Web应用程序在开发之时,由许多不同的程序员进行合作共同进行,而这些程序员的水平参差不齐,安全意识薄弱,导致未对用户输入的内容进行严格过滤和校验转义,使得应用程序在与后台数据库进行交互时,可以传递一些非法参数,造成SQL注入现象。

在进行SQL注入时,可以手工进行注入,当然,为了提高效率或者对原理不太了解的也可以使用工具进行,那就是我们的SQL注入神器——sqlmap。

但是,今天在这里想说的是手工注入。。。

我们在浏览一个网站时经常看到url地址栏里出现类似这样的情况:http://www.xxx.com/product.asp?id=12 ,这就是一个典型的get型asp动态网站。

那么如果我们在看到这类网站时,第一反应就应该是看看有没有注入,可以使用烂大街的【后面加单引号’】【and 1=1】这些来进行测试。

在测试发现存在注入点后,我们就可以开始插入我们的测试sql语句了。

1、猜表名>>> http://www.xxx.com/product.asp?id=12 exists(select * from 表名) 这里表名可以是我们常见的一些,比如user、admin、manage_user、login_user等等。这个需要自己多留意,多总结,看看常见的数据库关于存储用户名和密码的表都有哪些。

2、猜字段>>> 如果1中的页面显示结果为正常,那说明我们数据库中存在我们刚才猜解得表名,接下来就是http://www.xxx.com/product.asp?id=12 exists(select username,password from 表名),这里username和password是最常见的字段名,也可以是name,pwd,当然可能也真有比较奇葩的DBA按照这样的方式来创建字段,xingming、yonghuming、mima、kouling等。非主流的最可怕。。。尴尬

3、猜字段数>>> 如果2中页面显示正常,证明我们猜测的字段是存在的,接下来就是通过默认排序猜测字段数。http://www.xxx.com/product.asp?id=12 order by 10 查看返回页面是否正常,如果不正常可以采用“二分法”改成5继续测试,只到页面正常(不知道“二分法”的可以自行度娘)。比如测试为5时显示正常,那么进行步骤4.

4、联合查询>>> http://www.xxx.com/product.asp?id=12 union select 1,2,3,4,5 from 表名 ,查看页面回显的数值,如下图。 

5,、显位和占位>>> 接下来,就是将2和3替换成username和password, http://www.xxx.com/product.asp?id=12 union select 1,username,password,4,5 from 表名,将字段内容回显出来。如下。


将得到的md5值进行解密,就可以登录后台了。

不过千万不要干违法的事情!千万不要干违法的事情!千万不要干违法的事情!重要的事情说三遍!

以上纯属自己的心得体会,欢迎大牛指导!

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值