博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
webgote的例子(6)SQL注入(盲注)
阅读量:5927 次
发布时间:2019-06-19

本文共 1129 字,大约阅读时间需要 3 分钟。

 

SQL Injection - Blind (WS/SOAP)

本期演示的是盲注的手法。有些网站在与数据库交互的地方进行了很好的修饰,将报错的语句进行修改,即使你找到了注入点也无法下手拿数据,这个时候我们的步骤就比较麻烦了,我们只能通过对错的方式进行盲注(如下演示)

首先我们看一眼这是一个正常的显示页面。

加了一个点后也有不一样的地方。。。。。。。。 电影票的数字没了。。。

Sql的系统语句错误也被很好的掩盖掉了。我们再加一个注释看看

 

又输入了一个注释符后页面又恢复了正常。说明这个地方仍旧有漏洞(这就是下面要演示的另一个手法——盲注。)

 

我们加了一个or 的语句让它与后面的select user()不冲突,并将语句故意输错误的和正确的。看看页面有什么异常,据上方的显示结果来看返回的页面是又改变这的说明语句在后台确实是执行了的。

 

这个时候我们就要将我们的语句进行一个转变了大致思路如下:

  1. 先将我们的注入语句完整的写上。
  2. 将我们要查的语句的返回结果转成字符串。
  3. 截取字符串的所有字符
  4. 将每个字符转成ascii码然后通过比大小确认字符

其中要用到如下方法:

Substr(sql)x,y)     //sql)内添加查询语句就可以将返回的结果转成字符将这一串的字符以第x个开始向下截取y个。

Ascii() //该方法是将字符所对应的ascii码转换一下并显示出来。

 

具体如下示例

 

上面的语句简单的说一下吧: select user()的结果用substr()将字符串的第一个字符开始向下截取一个,然后用ascii()方法转成ascii码再一一的比对

比如:

(ascii(substr((select user()),2,1))>90)   

 //这个ascii的值否大于90 如果正确则应该显示53的那个数反之就是错误的,然后在 尝试(ascii(substr((select user()),2,1))=>100) 正确则显示53的那个数反之就是错误 以此 类推逐渐缩小范围。最终确定那个数。

 

 

 

Ascii的值我们可以看一下 在数据库中数据库是识别ascii的也可以一一的查出来。

或者百度一下我们可以拿张表看一下

 

我们将这些最终判定的结果依次记下来(如上图)这样我们就可以通过ascii码拿到数据了。

 

这样用户就出来了 一般找到注入点后最先想到的方法就是找显示位然后用联合查询。像这样一个一个的试这样的拿数据方式就是盲注了。这样的做的方法比较麻烦效率也比较低,后面有效率较高的方法,这个回头再讲,以上就是本次演示的内容。

 

 

转载于:https://www.cnblogs.com/shiguangliangchunshanbo/p/8847345.html

你可能感兴趣的文章
PyStun安装使用
查看>>
Courier:Dropbox 基于gRPC 的 RPC 框架开发过程
查看>>
浪潮成立Inspur DevOps Lab:以应用开发和平台服务打造开发者生态
查看>>
敏捷领导力的反面模式
查看>>
re:Invent大会第四天:为什么Lambda值得你更多关注?
查看>>
Homebrew 1.9发布,将支持Linux与Windows 10
查看>>
无服务器计算的黑暗面:程序移植没那么容易
查看>>
Python 2寿命即将终结,在此之前你需要做些什么?
查看>>
书评 - 《展望敏捷软件测试》
查看>>
在编写javascript时要注意的一些细节
查看>>
全栈溯源、mAPM、金融性能、Oracle VS. MySQL:看APM技术专场有哪些干货
查看>>
大前端的下一站何去何从?
查看>>
360开源又一力作——KafkaBridge:让操作kafka更简单!
查看>>
腾讯携手中科院国家天文台落地FAST 用云计算探索星辰大海
查看>>
Microsoft Graph:连接每个应用都需要的基础数据
查看>>
腾讯云工业互联网助力平台发布 推动制造业“数字化”蝶变
查看>>
开源项目koa-router被叫卖,周下载10W+只要5000美元
查看>>
eBay测试老兵的修炼之道:如何从测试“小工”到测试“专家”?
查看>>
Atlassian对Jira生态系统进行了扩展
查看>>
解读2016之容器篇:“已死”和“永生”
查看>>