做机械一般做那个外贸网站,电商软件开发费用,个人网站备案核验单,文化公司网站源码这道题其实不是堆叠注入#xff0c;但是我在联合查询无效后#xff0c;试了一下堆叠#xff0c;最后一步发现被过滤的sql语句太多了#xff0c;完全没法 查阅其他wp的过程[GYCTF2020]Blacklist 1#xff08;详细做题过程#xff09;
是用的handler语句#xff0c;只能用…这道题其实不是堆叠注入但是我在联合查询无效后试了一下堆叠最后一步发现被过滤的sql语句太多了完全没法 查阅其他wp的过程[GYCTF2020]Blacklist 1详细做题过程
是用的handler语句只能用于MySQL中是类似于select的语句详细内容我记录在我的wp中
先输入一些常规数字或者字母字符 返回值
数字1
array(2) {[0]string(1) 1[1]string(7) hahahah
}数字2 array(2) {[0]string(1) 2[1]string(12) miaomiaomiao
}其他字符均没有返回值 尝试常见的sql语句发现返回如下内容查询后发现是提示这些sql语句都被过滤掉了
在博客https://blog.csdn.net/weixin_45551083/article/details/105389126 中提到了“堆叠注入”
堆叠注入详解 堆叠注入是用 ; 分隔开的多行sql语句 ?inject2;show databases;#得到以下内容 、
继续 show tables 找到一个“FlagHere”表 查找“FlagHere”下面的所有列元素看到一个字符串flag 后面还有一个varchar(100) 应该是要想办法打印出来 到这里思路确实会卡住 再次看堆叠注入的特点sql语句是各自执行的
查找“words”下面的所有列元素 会发现刚好是 一个int和一个varchar(20) 对应一开始我们输入数字1或者2的“一个数字一个字符串”的格式
再下一步的思路是既然默认查询到的是显示“word”这张表 那么就把word表名替换到FlagHere,同时列名也同步替换 这样FlagHere里的内容不就默认打印出来了 依次将words表改名为noWords FlagHere改名为words 然后将此时的words表中的列名flag改为id与原来的words表中列名第一个为id第二个为No一一对应
?inject2;
rename table words to noWords;
rename table FlagHere to words
alter table words change flag id varchar(100);#提交发现alter也被过滤了服了
直接查这道题的wp开头的链接[GYCTF2020]Blacklist 1详细做题过程
又是新东西
Handler语法 handler语句一行一行的浏览一个表中的数据 handler语句并不具备select语句的所有功能。 mysql专用的语句并没有包含到SQL标准中。 HANDLER语句提供通往表的直接通道的存储引擎接口可以用于MyISAM和InnoDB表。 1、HANDLER tbl_name OPEN打开一张表无返回结果实际上我们在这里声明了一个名为tb1_name的句柄。 2、HANDLER tbl_name READ FIRST 获取句柄的第一行通过READ NEXT依次获取其它行。最后一行执行之后再执行NEXT会返回一个空的结果。 3、HANDLER tbl_name CLOSE关闭打开的句柄。 4、HANDLER tbl_name READ index_name value通过索引列指定一个值可以指定从哪一行开始,通过NEXT继续浏览。 直接用handler语法打印之前查到的FlagHere表输出内容就行 http://6e7bc099-1e40-424e-9cc5-235785f06b8b.node5.buuoj.cn:81/?inject2’;handler FlagHere open;handler FlagHere read first;handler FlagHere close;#