SQL注入

题目地址:http://ctf5.shiyanbar.com/web/index_2.php

1、空格检测

输入1',发现注入。


i单引号检测

输入1' ,注意,这里参数后面多加了一个空格。


空格检测

2、关键字检测

  • and


    and通过
  • select


    select不通过
  • from


    from通过
  • union


    union被过滤

这里只检测这么些个,因为实际用到的也不多

3、如何绕过?毕竟离不开关键词

我看了网上其他人的答案:
借鉴了几个思路:
1、大小写绕过
2、url编码进行绕过
3、注释进行绕过
结果:
1、大小写绕不过
2、url编码,试了%0a,意思是换行,也没过
3、/* * /和/* !select * /过了!就算屏蔽了*和/号,感觉也可以通过url编码重编,然后再次尝试?!

注释绕过

4、查找所有的表

'union/* !select* /table_name%0afrom%0ainformation_schema.tables%23网上给出的答案是这个。


爆表

其实,在经过转化之后,它真正传入到数据库的语句是这样的
'union/* !select * /table_name
from
information_schema.tables#

很明显,我有很多地方有疑惑。

首先,第一点来说。在《SQL注入与防御》中说到,需要用正确的sql语句来确认注入,使用错误的sql语句来发现注入。在这里,操作数据库的sql语句可能是这样写的:
select * from where id =
而这里,是直接将'union传入,相当于是
select * from where id = '' union select ***
传入了非正确的sql语句
当然了,联合查询这样做也是可以的,只是疑惑了一小会。

接下来,就是不懂的地方了。
使用/* !select* /确实是可以让mysql执行这个关键字,但是,为什么要在
information_shcema.tables后面加个#号呢?
明白了,这个#是代表,注释直到#号这行结束。
但是问题又来了,既然是注释,为什么会被执行?井号为什么不是在/* !select * /后面加,而是在#号后加呢?

解决第一个疑问:
在绝大多数编程语言中/** /都是代表注释的意思。但是mysqldump在导出的时候,为了保持兼容也能在其他SQL数据库运行,唯独能在mysql中被执行的就是/ *! * /了。所以,这里的/ *!select * /也就是顺从了这个规则,未被过滤且被执行。

第二个疑问:#号代表这一行注释的结束,很明显,这是可执行注释的结束,以免影响到后面的语句。

这里的知识点:
1、爆表sql语句:
union select table_name from information_schema.tables
2、使用换行url编码,跳过waf对空格的封锁

其实这里我换了一种方法,'union/ * !select* /table_name/** /from/**/information_schema.tables%23,也是可以得到目的,而且看起来更加工整?


自己的方法

5、爆列名和字段

所有的表均被爆了出来,看这里,是不是觉得胜利有望?继续干,拿列名!


所有表

从information_schema.columns中读取列名
'union/ * !select * /column_name/ ** /from/ ** /information_schema.columns/ ** /where/ ** /table_name='flag'%23

爆列名

'union/ * !select * /flag/ ** /from/ ** /flag%23


flag到手

6、思路总结

一开始拿到这个题目,我是完全没有思路的,不知道该如何下手,但是渗透测试一定要形成自己的思路体系。xss、sql注入各个思路不尽相同。这里总结sql。

首先,看它过滤了哪些,从关键字下手测试,sql注入攻击离不开关键字的帮助。
还有常规的空格过滤测试,特殊符号过滤测试。
这里如果是空格过滤的话,可以使用/ ** /注释进行绕过,当然,绕过过滤空格的方法还有很多,以后遇到再做知识储备。

然后,是爆数据库、列名、字段,这里使用的是information_schema.tables配合/ *! * /结合select这个技术进行爆破。值得我学习的是,这里的sql语句很简洁效果很好,union select table_name from informatin_schema.tables再次安利一下。
知道数据库,就该爆列名了。
union select column_name from information_schema.columns where table_name=flag

知道数据库和列名,最后的答案就可以拿出来了。
union select flag where flag

检测过滤 => 爆数据库 => 爆列名 => 爆字段
过滤分为:
特殊字符和关键字过滤
解决方法是利用url编码或者注释

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

推荐阅读更多精彩内容

  • Sql注入定义: 就是通过把sql命令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行...
    付出从未后悔阅读 690评论 0 3
  • 一、分类 可以有以下几种不同的维度:维度一:基于注入点值的属性 数字型 字符型维度二:基于注入点的位置 GET/P...
    ffx_01阅读 1,737评论 0 0
  • Sql 注入基础原理介绍一、实验说明1.1 实验内容SQL注入攻击通过构建特殊的输入作为参数传入Web应用程序,而...
    FreaxJJ阅读 1,817评论 3 23
  • Web安全之SQL注入漏洞 本节知识点 SQL注入原理 前言 结构化查询语句(Structured Query L...
    f354f7231c35阅读 2,037评论 0 5
  • 雨悄悄的来了,从很远很远的地方传来“哗,哗,哗”。晶莹的雨珠掉在地上,“啪啪”直响,像弹奏处一首又一首的歌...
    韵杺阅读 163评论 0 0