玖叶教程网

前端编程开发入门

sql注入之报错注入和原理

首先我们要知道sql注入的核心:把用户输入的数据当作代码来执行

其次我们也要知道sql注入的sql注入的基本思路:两个条件:

  1. 用户能够控制输入
  2. 原本程序要执行的代码,拼接了用户输入的数据,然后进行执行


  1. 检测是否存在注入点(后文解释)
  2. 猜解字段数
  3. 利用联合查询寻找输出点
  4. 查询系统自带库,查询表名,字段名
  5. 查询所需字段值

实战演示:

一:寻找注入点


此时正常显示,当输入and 1=2 时出现错误


所以存在注入点

二:猜解字段数

这里可以使用order by n 来测试字段数,当出现页面不正常时,则会有n-1个字段


可知字段数为3

三:寻找输出点:就是寻找页面能显示哪些内容

这里可以利用union查询,使用union查询的两次查询列数必须一致,这就是为什么要找到字段数,


可以知道这里的输出点是 2和3

四:查询库名,表名,字段名

1.查询库名可以利用database()函数


2.查询表名:利用mysql自带数据库




所以执行语句: select table_name from infromation_schema.tables where table_schema=database()


3.寻找字段值

在数据库中,在information——schema 库中的有columns(字段的意思)表,存放的是每个表对应的字段名。


所以使用语句: select column_name from information.columns where table_name='error_flag' and table_schema=database();

4.获取字段值之后要找到flag , 利用语句:

select group_concat(flag) from error_flag(表名)

得到flag

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言