url编码:一般的url编码其实就是那个字符的ASCII值得十六进制

  • 空格是%20,单引号是%27, 井号是%23,双引号是%22

常见sql注入方式:

按照注入点分类

  1. 数字型注入:许多网页链接有类似的结构 http://xxx.com/users.php?id=1 基于此种形式的注入,注入点id为数字,一般被叫做数字型注入点,通过这种形式查询出后台数据库信息返回前台展示,可以构造类似以下的sql语句进行爆破:select *** from 表名 where id=1 and 1=1
  2. 字符型注入:网页链接有类似的结构 http://xxx.com/users.php?name=admin 这种形式,注入点name为字符串,被称为字符型注入,可以用:select *** from 表名  where  name='admin'  and 1=1
  3. 搜索型注入:主要是指在数据搜索时没有过滤搜索参数,一般在链接地址中有 "keyword=“关键字”",注入点提交的是sql语句,select * from 表名 where 字段 like '%关键字%' and '%1%'='%1%'

按照效果来分类

  1. 基于布尔的盲注,根据页面返回判断条件真假注入
  2. 基于时间的盲注,既不能页面返回内容判断任何信息,用条件语句查看时间延时语句是否执行(页面返回时间是否增加)来判断
  3. 基于报错的盲注,即页面会返回错误信息,或者是把注入的语句执行结果返回到页面
  4. 联合查询注入:可以使用union的情况下注入

Less-1

正常页面:

含有数字型SQL语句的URL发送给服务器数据库,数据库查询结果并返回到页面,这就形成了一次SQL注入攻击

后面所有的数据库表可以使用sqlmap工具全部爆表出来

不利用工具猜测表中有多少条信息?

随机选择数字注入,那就id=15吧!

数据库没有返回结果,证明表中没有第15条信息了,慢慢缩小数字

id=14出现了信息,证明这个表中有14条用户信息!

还有字符型注入没试,刚学 :yinxian: 慢慢来

Less-2


You got to put the past behind you before you can move on.