SQL注入_1-6_user-agent注入

一.概念

User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU
类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。

一些网站常常通过判断 UA 来给不同的操作系统、不同的浏览器发送不同的页面,因此可能造成某些页面无法在某个浏览器中正常显示,但通过伪装 UA
可以绕过检测。

二.观察没有过滤useragent的代码

1.提交post参数的password和username,将涵name的参数传递给value变量

2.过滤参数字符,以及固定字节

插入user-agent,赋值给¥uagent
没有做过滤

在sql语句中直接使用插入函数,没有做任何过滤

由此判断存在SQL注入

二.模拟实战演练
打开less-18

代理截断

重放 攻击

这3个图应该放前面,放错了,
但是也可以看看

这里解释一下
第一个参数可以是任意数字,这里我们设置为一,
第二个是小path字符
第三个是就是自己需要的数据

concat是用来链接数据库的数据的

因为此函数会导致数据库报错

所以就可以看到我们想要的数据

好,我们接着刚刚的来
’ and updatexml(1,concat(0x7e,(select database()),0x7e),1) or ‘1’='1
在user-agent处输入MySQL的报错函数
可以看到爆出了数据库名

由此推测出,user-agent处是存在sql注入的

在需要测试的地方加上*,并保存到root目录下

直接暴库

算了,太慢了,我们直接报当前使用的数据库
由于暴库需要时间,所以我们最后在看结果,先看看下一个注入

接着来看看 referer注入
可以看到Referer头储存在了变量uagent中

又直接带入SQL语句
没有过滤
由此推断
存在sql注入

好,我们打开less-19
输入账号密码,然后代理截断

输入反斜杠,MySQL报错,由此推断存在sql注入

刚刚那条语句,也爆出了数据库名
这里我们使用其他方法

使用基于时间的注入
我们可以看到没有时间注入时
服务器响应时间为1秒左右

加时间注入以后
’ or (length(database()))>9 or if(1=1,sleep(5),null) or ‘1’ ='1
服务器响应为6秒
,由此推断存在基于时间的盲注

解释一下这条语句
判断数据库名是否大于9
或者 如果1=1 则,睡眠5秒,
最后‘1’ =’1 是为了闭合前面的单引号,否则会报错

方法一样,在存在注入的地方加*号然后打包到root目录下,进行探测就不一一举例了

当我们需要探测输入参数是否存在注入时
可以 --data=‘参数’
当然,与我们这次不同,因为这次用户输入的参数已经被过滤
所以用了也探测不出来

最后我们再来看看user-agent探测那个窗口

可以看到,使用基于时间的方法,已经报出了他的数据库名
其他具体的注入就不一一写了

SQL注入_1-6_user-agent注入相关推荐

  1. sql盲注特点_SQL注入第二章——access,mssql,oracle

    一.Access注入 Access是轻量级数据库,特点是没有库,没有用户,单文件即可存储数据,在SQL注入时必须猜测表名和列名. Access只有联合注入和布尔盲注. 1,联合注入 http://12 ...

  2. SQL注入--利用cookie进行注入

    SQL注入–利用cookie进行注入 靶场:sqli-labs-master 下载链接:靶场下载链接 第20关 php源码: <?php //including the Mysql connec ...

  3. 《小迪安全》第14天 SQL注入:注入类型及提交注入

    目录 注入前需要明确 数据库类型 请求方法 数据类型 演示案例 参数字符型注入测试:sqlilabs less 5 6 POST数据提交注入测试:sqlilabs less 11 COOKIE数据提交 ...

  4. SQL查询结果集对注入的影响及利用

    对于注入而言,错误提示是极其重要.所谓错误提示是指和正确页面不同的结果反馈,高手是很重视这个一点的,这对于注入点的精准判断至关重要.本问讨论下关于几类错误和他产生的原理,希望对读者有所帮助. 错误提示 ...

  5. SQL Server的WAITFOR DELAY注入

    SQL Server的WAITFOR DELAY注入 WAITFOR是SQL Server中Transact-SQL提供的一个流程控制语句.它的作用就是等待特定时间,然后继续执行后续的语句.它包含一个 ...

  6. sql盲注特点_SQL注入介绍及分类解读

    SQL全称是Structured Query Language,是一种结构化的查询语言,用于与数据库进行交互并能够被数据库解析.SQL注入攻击是一种常见的注入攻击类型.攻击方式在用户与程序进行交互时发 ...

  7. SQL注入之二次注入(sql-lab第24关)

    什么是二次注入 二次注入可以理解为,攻击者构造的恶意数据存储在数据库后,恶意数据被读取并进入到SQL查询语句所导致的注入.防御者可能在用户 输入恶意数据时对其中的特殊字符进行了转义处理,但在恶意数据插 ...

  8. 【less-1】基于SQLI的SQL字符型报错注入

    实验声明:本实验教程仅供研究学习使用,请勿用于非法用途,违者一律自行承担所有风险! 文章目录 实验目的 实验环境 实验原理 实验步骤 第一步 登录SQLI-Labs平台 第二步 登录Kali平台,启动 ...

  9. sql注入中的联合注入

    联合注入 联合注入顾名思义,就是使用联合查询进行注入的一种方式,是一种高效的注入的方式,适用于有回显同时数据库软件版本是5.0以上的MYSQL数据库.至于为什么需要版本是5.0以上的MYSQL数据库, ...

  10. SQL注入-二次注入和多语句注入

    二次注入 一.二次注入的定义 简单的说二次注入就是已经存储到数据库中的用户输入,在进行再一次读取的时候进去SQL查询语句中的注入. 二.二次注入的原理 第一步:插入恶意数据 第一次进行数据库插入数据的 ...

最新文章

  1. Nginx源码分析:master/worker工作流程概述
  2. Nature:人工甜味剂改变小鼠肠道菌群组成及功能
  3. 一起谈.NET技术,asp.net控件开发基础(20)
  4. 大工18秋《c c 语言程序设计》,大工18秋《毕业论文(设计)写作指导》在线测试1.txt...
  5. 怎么学python-如何轻松学习Python数据分析
  6. bobo老师机器学习笔记1.1 - 什么是机器学习
  7. linux 汇编 gdb报错:Invalid register `eip‘(64位系统没有eip只有rip寄存器)
  8. jq fileupload 设置最大文件大小5m_如何在 Linux 服务器上设置 ulimit 和文件描述符数限制 | Linux 中国...
  9. Can't use function return value in write context 使用empty遇到报错
  10. 深入理解Yii2.0 (2)事件Event
  11. python怎么配置pip_python如何配置pip
  12. win10 C语言qt调试,如何在Windows中调试Qt(MSVC)应用程序
  13. nlohmann json用法
  14. 靠肝的爬塔不优雅——养成手游《古今江湖》
  15. 【C语言编程】如何整蛊你的损友,让他的电脑一直关机?
  16. 华为 日志服务器 配置文件,华为设置日志服务器配置
  17. iOS开发学无止境 - 6个iOS图片文本设计的小技巧
  18. 跟wms通信_应用与WMS的关联
  19. 【Linux】一、Linux系统下安装Nvidia P1000显卡驱动、CUDA、cuDNN
  20. Nodejs知识点总结及个人学习心得

热门文章

  1. Java高级工程师实战经验图谱
  2. 谷歌技术专家关于JavaScript的一个引人注目的观点
  3. 开发遇到的问题---【spring-security权限控制框架】
  4. cookie的设置和获取
  5. 谈一下JavaScript的语法
  6. Windsock套接字I/O模型学习 --- 第二章
  7. hdu 1874 畅通工程续(模板题 spfa floyd)
  8. [转]仿163网盘无刷新文件上传系统
  9. thymeleaf 中文_springboot 整合 thymeleaf(上手即用)
  10. Java黑皮书课后题第5章:**5.36(商业应用:检测ISBN)使用循环简化编程练习题3.9