如果看到了一种测试结果,后台便可能执行了对应种类的操作. 识别SQL注入漏洞有一种简单的规则: Web环境是这样工作的: HTTP定义了多种客户端可发送的请求,但SQL注入最相关的请求是:GET请求和POST请求 Get是一种请求服务器的HTTP方法。GET请求的信息包含在URL中,在网页中点击一个链接时,一般都为这种方法。GET请求对用户绝对透明。 发送给Web服务器的GET请求一般为这样: 具体详细的请看这位大佬的博客:点击进入 对于GET请求来说,只需要在浏览器的URL导航栏中对URL中?号后的参数做修改,即可操纵这类参数 例如:企鹅的X号购买界面(无漏洞,只做演示) 其中GET参数为: 如果改变参数: 该网站就会这样: POST请求与GET请求基本相似,一般在表单(账号注册,登录等)点击Submit按钮提交时使用该方法,与GET不同的是,POST请求将参数分装在HTTP请求头的底部,而不是URL中。 POST请求一般长这样: 注:数据如何在浏览器中呈现并不重要,有些值可能是表单中的隐藏字段,也可能是下拉选项字段,有些可能会有大小限制或包含禁用字段,这些都只是客户端功能,我们可以完全控制发给服务器的内容,不要将客户端接口机制堪称安全功能。 1、浏览器插件进行修改 插件:Hackbar、Web Developer、Temper Data(已下架,但是火狐36.0还有离线包可以使用) 2、本地代理+本地软件 虽然大多数应用都从GET或POST参数中检索数据,但HTTP请求的其他内容也可能会触发SQL注入漏洞 例如:cookie SELECT:查、根据条件从数据库中读取数据 当我们进行post请求或是get请求时,我们可以更改请求参数从而达到目的 1、WEB服务器的作用 2、数据库服务器的作用 数据库服务器不会验证是否为sql注入,所以我们可以通过操纵sql语句来让数据库服务器返回任意数据(例如用户的账户和密码),而web服务器也无法验证数据是否合法,因此会将数据返回给攻击者 上面说到给参数加一个单引号导致数据库报错。虽然错误显示在了web服务器,但是实际上数据库层也接收到了数据并对其做出了处理 我们看一下sqli libs第一关的源代码 如果我们加入了单引号就变成了 图中反应了这条查询语句的处理过程 1.用户发送请求,尝试识别SQL注入漏洞,将发送的值后加入了一个单引号,寻找闭合符号
Web渗透测试-寻找SQL注入
一、识别数据输入
注:双方所使用的协议都为HTTP协议,但是请求可能不同
GET请求
其中:
GET发送的参数为:/link?
后的全部数据(就是指?号后)
请求头
解释
Host:
请求的主机名或域名
User-Agen:
客户端所运行的浏览器的详细信息
Accept:
指定客户端能接收的内容类型,以及接收的先后顺序
Accept-Language:
指定客户端浏览器显示语言的优先级
Accept-Encoding:
指定客户端浏览器可以支持的web服务器返回内容压缩编码类型。表示允许服务器在将输出内容发送到客户端以前进行压缩,以节约带宽。而这里设置的就是客户端浏览器所能够支持的返回压缩格式.
Refere:
标识用户从哪个URL发出的当前请求
DNT:
do not track禁止追踪,为1是开启,至于服务端是否遵守是另一回事
Upgrade-Insecure-Requests:
对应http头是否为https,如果为1就是告诉服务器自己支持https,请求时就会使用https进行请求
Connection:
close表示服务器给客户端发送信息后断开,keep-alive就是保持连接
cookie:
应该都懂,就是cookie值
其中使用了get请求,我们查看下请求
链接为:https://haoma.qq.com/pay_v2.html?num=22444xxxx&type=10061&month=1&price=0&actid=0&viptype=1&trackid=10001
num=22444xxxx&type=10061&month=1&price=0&actid=0&viptype=1&trackid=10001
num=22444xxxx&type=10061&month=0&price=0&actid=0&viptype=1&trackid=10001
POST请求
画红框的地方为POST请求的数据,因为我用的插件,所以会加粗
插件:火狐浏览器HTTP Header Live
如果浏览器禁止我修改这些参数该怎么做?
原理:客户端发送的流量包,经过本地代理,被推入本地的相关软件并修改数据包后发送给Web服务器
例如:Paros Proxy、WebScarab、Burp Suite
其他注入型数据
数据库层面的4种操作:
INSERT:增、将新数据插入到数据库中
UPDATE:改、根据条件更新数据中已有数据
DELETE:删、根据条件删除数据库中已有数据二、操纵参数
引发SQL注入漏洞的原因
如何防止?
三、信息工作流
图中各个角色的作用
关于数据库错误
SELECT * FROM users WHERE id='1'' LIMIT 0,1"
http://caotang.org/Less-1/?id=1'
SELECT * FROM users WHERE id='1'' LIMIT 0,1"
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1'' LIMIT 0,1' at line 1
PS:这段时间快期中考试了,咕了一段时间,第二段过几天放上来。
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算