借助Burpsuite的访问数据库手工SQL注入是怎样的

本篇文章给大家分享的是有关借助Burpsuite的访问数据库手工SQL注入是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

环境介绍

目标系统是之前在网上偶然下载的一个CMS系统,在本地装了一个Windows服务器的虚拟机,开启IIS。因为是访问数据库,所以不需要安装相关的数据库服务,再其根目录的数据<代码>/文件夹下有个<代码> data.mdb 文件,即为该数据库文件。

发现注入点

在测试环境里看了一下站点的情况,发现这个CMS在读取新闻内容的时候,URL为http://172.22.10.239/info.asp? <代码>id=240> id>

借助Burpsuite的访问数据库手工SQL注入是怎样的

进一步进行确认,考虑到这里的<代码> id>

 SELECT  {col_name},得到{table_name}, WHERE “id”,=, {id} 

查询语句里面的<代码> id>

 ? id=240 +和+ 1=1 + 

<代码> +> + 代替。

这时候发现依然是500,难道判断错了?还是后面还有别的什么语句吗?不甘心的又尝试了一下<代码>或进行拼接:

 ? id=240 +或+ 1=1 + 

这下可以正常显示出页面了。那基本就能确定此处存在注入点,而且大概率是<代码>和字符被替换了。

问题分析

既然发现了注入点,就可以尝试注入。正常的手段是去试过滤规则,但是因为目标是一个CMS,我们手里有后台的源码,因此直接开始对相关页面的源码进行分析,看看它到底用了什么规则去拦截我们的输入。

先打开<代码>信息。asp代码文件,找到处理<代码> id>

借助Burpsuite的访问数据库手工SQL注入是怎样的

那这里的<代码> rq() 又是啥?在<代码>图书馆。asp代码文件中找到了这个函数的定义:借助Burpsuite的访问数据库手工SQL注入是怎样的

str_safe函数定义:借助Burpsuite的访问数据库手工SQL注入是怎样的

看到这里,其实一切规则就都明白了,我们输入的<代码>{空格}和是在过滤列表中的。那么下一步就是如何绕过并且进行注入了。

尝试注入

访问数据库与Mysql数据库注入的区别主要体现在访问是没有,null

借助Burpsuite的访问数据库手工SQL注入是怎样的