WP-BUUCTF

BUUCTF

[HCTF 2018]WarmUp

点击题目所给链接,一个大大的滑稽

WP-BUUCTF

 

 右键查看源代码,发现提示去看source.php,访问后页面如下:

WP-BUUCTF

 

 大致阅读代码发现自定义类emm,定义静态方法checkFile,有一个参数。在代码的结束位置调用该方法且将接受到的参数file传入,如果为true则包含file文件,否则输出滑稽。再去看方法里面的代码。

WP-BUUCTF

 

 首先定义一个白名单,if里面的意思是如果page没有设置或者不是字符串的话输出"you can‘t see it",并返回一个false

WP-BUUCTF

 

 这个if判断page是否在之前定义的白名单,在这里可以尝试将hint.php用file提交看看

WP-BUUCTF

 

 提示flag在ffffllllaaaagggg里面,接着看下一个if

WP-BUUCTF

 

 这个if算是关键代码了,利用函数mb_substr()函数对page进行截取,截取的位置从0开始,到出现问号的地方结束,即可以构造payload进行绕过,source.php?file=hint.php?ffffllllaaaagggg,提交后发现页面的滑稽不见了,应该是绕过了

WP-BUUCTF

 

 WP-BUUCTF

最后一个if循环没啥好看的,和第一个差不多。代码都看完了,怎么没出flag???然后去看了人家的wp,发现还有一个路径的问题,加上相对路径就可以包含ffffllllaaaagggg

WP-BUUCTF

 

 [极客大挑战 2019]EasySQL

看题目应该是一个sql注入,点击题目所给链接

WP-BUUCTF

 

 先随便输一个账号密码点击登录

WP-BUUCTF

 

 看起来像注入点,加一个单引号看是否报错

WP-BUUCTF

 

 换成双引号,正常显示密码错误

WP-BUUCTF

 

 判断为单引号闭合,判断列数,通过尝试发现3时正常回显

WP-BUUCTF

 

 下一步查看回显点

WP-BUUCTF

 

 直接得到flag

[极客大挑战 2019]Havefun

进入题目界面如下

WP-BUUCTF

 

 右键查看源代码,发现提示

WP-BUUCTF

 

 构造paylaod提交cat=dog,得到flag

WP-BUUCTF

 

 WP-BUUCTF

[强网杯 2019]随便注

进入题目界面如下,

WP-BUUCTF

 

 通过测试发现为单引号闭合,判断方式为加单引号报错,加双引号不报错,遂判断为单引号闭合

WP-BUUCTF

 

 通过测试发现列数为2,下一步观察回显点

WP-BUUCTF

 

 WP-BUUCTF

 

 发现对关键字做了过滤,尝试大小写绕过失败,尝试使用报错注入,得到使用数据库

http://69514f09-3bfd-4843-b9f1-8f123a7ab127.node3.buuoj.cn/?inject=hahahah‘ and 1=extractvalue(1,concat(0x7e,database(),0x7e)) --+

WP-BUUCTF

 

 到这里报错也不能获得更多的有效信息,求助人家的wp,发现均使用了堆叠注入,去复习了一下堆叠注入

直接利用?inject=1‘;show tables;--+查看表名

SET;                                    # 用于设置变量名和值
PREPARE stmt_name FROM preparable_stmt;    # 用于预备一个语句,并赋予名称,以后可以引用该语句
EXECUTE stmt_name;                         # 执行语句
{DEALLOCATE | DROP} PREPARE stmt_name;    # 用来释放掉预处理的语句

构造payload

-1;
set @sql=CONCAT(se,lect * from `1919810931114514`;);
prepare stmt from @sql;
execute stmt;

发现过滤了set和prepare,大小写进行绕过

成功得到flag

WP-BUUCTF

参考大佬解题思路:https://www.cnblogs.com/chalan630/p/12583667.html

[SUCTF 2019]EasySQL

[ACTF2020 新生赛]Include

[极客大挑战 2019]Secret File

[ACTF2020 新生赛]Exec

 

WP-BUUCTF

上一篇:Strings.isEmpty()和Strings.isBlank()的区别


下一篇:安装less后报错:Module build failed: TypeError: this.getOptions is not a function at Object.