博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用SQL注入漏洞拖库
阅读量:5312 次
发布时间:2019-06-14

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

想在本地测试的话,可以在此免积分下载:

同上一篇文章()一样,我们需要创建数据表,并在表中出入几条数据以备测试之用。

在数据库中建立一张表:

CREATE TABLE `article` (   `articleid` int(11) NOT NULL AUTO_INCREMENT,   `title` varchar(100) CHARACTER SET utf8 NOT NULL DEFAULT '',   `content` text CHARACTER SET utf8 NOT NULL, PRIMARY KEY (`articleid`) ) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=latin1;

在表中插入数据的操作我就不贴代码了,可以去下载下来直接导入到数据库。

接下来,写一个处理用户请求的页面,这里,我们故意不过滤用户提交过来的数据,留下个SQL注入漏洞用来测试。

代码如下:

利用SQL注入漏洞拖库

"; if (!$row){

echo "该记录不存在"; exit; } echo "标题
".$row['title']."

"; echo "内容

".$row['content']."

"; ?>

我们直接在浏览器中输入:

即可访问article表中id为1的一条记录

访问结果如下:

 

接下来,我们就利用这个漏洞(不知道该漏洞的情况下,只能通过工具+手工检测),演示一下如何将article表下载下来。

在地址栏中输入:’ into outfile 'e:/sql.txt'%23

分析:%23是#的ASCII码,由于在地址栏中直接输入#后到数据库系统中会变成空,需要在地址栏中输入%23,那么才会变成#,进而注释掉后面的sql语句。

运行之后,打开E盘,发现多了一个sql.txt文件,打开之后,里面就是表article中的一条记录。

为什么只有一条记录呢?难道该数据表就只有一条记录?不是这样的,因为我们只检索id为1的一条记录而已,那么能否将article表中的所有记录一次性全部下载下来呢?

答案是可以的,只要你的构造的SQL语句足够灵活(再次提出了构造SQL语句的灵活性)。

 

       分析一下,当在URL地址栏中输入’into outfile 'e:/sql.txt'%23的时候,合并到sql查询语句中变为:

 

       SELECT * FROM article WHERE articleid='5' into outfile 'e:/whf.txt'#'

 

       仔细分析下之后,我们可以这样子构造SQL语句:

 

       SELECT * FROM article WHERE articleid='' or 1=1 into outfile 'e:/whf.txt'#'

 

      这样的话,无论如何WHERE子句总是为真,换句话说,该sql语句等价于如下:

 

      SELECT * FROM article into outfile 'e:/whf.txt'#'

 

      懂了吧,该sql语句在先执行select语句,将表article中的所以内容全部检索出来,然后再执行into outfile 'e:/whf.txt'#'将内容导出来。

 

      不信的话,你执行下……

 

      利用SQL注入漏洞,我们可以猜测表名,列名,用户的密码长度(LEFT函数)等等,当然了,如果能直接向以上的演示那样将表中的数据全部导出的话就没必要去猜表名列名等等。

 

      有点累了,就写到这里了。

      是我学习了相关内容之后的一点小结,没啥深度,正如文章开头所说,权当总结,别无它意。

原创文章:

转载请注明:

转载于:https://www.cnblogs.com/hongfei/articles/sql-injection-tuoku.html

你可能感兴趣的文章
为什么需要ObjectDataProvider
查看>>
Eclipse(非J2EE版本)配置Extjs环境以及安装部署Tomcat
查看>>
网页中搜索框效果原理。
查看>>
SpringBoot实战 之 异常处理篇
查看>>
【转】【OPenGL】opengl 64位 配置 freeglutx64下载
查看>>
Bootstrap 基础
查看>>
设计模式 之 工厂模式
查看>>
哈夫曼树及解码
查看>>
七大技巧保护无线网络,蹭网卡什么的都是浮云!
查看>>
Sql数据库收缩 语句特别快
查看>>
生成四位随机数的PHP代码
查看>>
Cocos2d-x 2.x 升级为 3.x 常见变化纪录
查看>>
Memcached
查看>>
项目启动报错java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind
查看>>
Cassandra 的Custom Codecs
查看>>
去掉UIToolBar上面的shadowImage
查看>>
DP---最长公共子序列
查看>>
#100天计划# 2013年9月27日
查看>>
HDU-2086 A1 = ?
查看>>
主站点~~~~
查看>>