SQL注入

SQL注入:

概念:在web应用程序没有对用户输入的参数做合理过滤的时候,将SQL命令注入到web表单提交或输入域名或页面请求的查询字符串中(一般添加在查询语句的结尾),从而达到欺骗服务器执行恶意SQL语句获得数据库相关信息的目的。

原理:在web应用程序没有对用户输入参数做出合理过滤的情况下,攻击者将恶意的SQL语句添加在正常的查询语句结尾,从而欺骗数据库服务器执行SQL语句返回数据库信息,进而猜解数据库中的表、字段、内容,得出web管理员的帐户信息,在后台登录执行一些违规操作。

测试方法:

一:判断注入点

    (1)输入'

    (2)注入 and 1=1 

    (3)输入 and 1=2 

如果(1)报错或者返回数据库信息,则说明存在注入点;(2)返回正确,(3)返回错误,说明存在注入点。

二:判断数据库类型

    从返回的信息中判断数据库类型,为下一步攻击做铺垫。

三:根据注入参数的类型,重构SQL语句

    (1)ID=1数字型注入参数,SQL语句大致为:Select * from 表名 where 字段=1

    (2)name=上卿字符型注入参数,SQL语句大致为:Select * from 表名 where 字段=上卿

    (3)搜索关键字=孙,如keyword=孙,SQL语句大致为:Select * from 表名 where 字段 like '%孙%'

四:猜解表名、字段名和内容

    (1)and exists (select * from 表名) 如果页面返回正常,则存在此表,反之,不存在,继续猜测表名,直至页面正常。

    (2)and exists(select 字段 from 表名)此时表名已经猜解出来,同理猜测字段。

    (3)and(select  len(字段名)from 表名)>0   直至猜解到>n不成立的时候,得出字段的长度为:n+1。

    (4)and (select left(字段名,1)from 表名)=‘a’,字段名的第一个字符是否为a。一次猜测第二个,第n+1个字符。

五:工具注入

    在确定注入点之后,可以利用注入工具进行SQL注入,例如domain、havij和强大的SQLMAP。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱上卿Ooo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值