文章目录
盲注
概念:在注入过程中,获取的数据不能回显至前端页面,此时我们需要利用一些方法进行判断或尝试,这个过程被称为盲注。
解决:常规的联合查询注入不行的情况。
分类:
- 基于布尔的SQL盲注,逻辑判断。
/blog/news.php?id=1 and if(1=1,sleep(5),0)
- 基于时间的SQL盲注,延时判断。
/blog/news.php?id=1 and length(database())=7
- 基于报错的SQL盲注,报错回显。
/blog/news.php?id=1 and lupdatexml(1,concat(0x7e,(select @@version),0x7e),1)
后端写了die (mysql_error())
才会报错。12种报错注入+万能语句
常规的联合查询注入,因为页面有回显,所以可以通过回显来判断SQL语句执行成功了。若没有回显,则只能通过盲注来判断SQL语句是否执行成功(报错、时间、布尔)。
增删改查
- 查询方式增删改查四种特性决定,部分不需要进行数据取出和显示,所以此类注入基本上需要采用盲注才能得到结果;(黑盒测试可以根据功能判断注入查询方式)
- 查询方式增删改查四种特性决定应用功能点(会员注册、删除新闻、修改文章等)。
假如执行SQL语句的代码在flag.php,而index.php调用了flag.php这一文件,最好通过flag.php进行SQL语句注入,而不是直接构造数据发送给flag.php。
如何判断宽字节注入:报错显示单引号被过滤,可以考虑宽字节注入。