写完这个WP简直快吐。
Web2
F12即可发现flag在注释中
文件上传测试
这题对Content-Type和filename做了检查。上传一个jpg文件,burpsuite抓包将文件扩展改为php即可拿到flag。
计算题
在Resource中找到code.js文件,发现flag。
Web3
禁止弹窗后F12或在url开头加view-source:
查看源代码,在结尾可发现一段HTML10进制的编码,解码后得到flag。
sql注入
得知网页为gbk编码,采用宽字符注入。payload:
|
|
SQL注入1
XSS过滤中过滤掉了尖括号,因此可用尖括号来绕过sql过滤。
payload:
|
|
你必须让他停下
查看源代码,多刷新几次可找到flag
本地包含
payload:
|
|
变量1
通过超全局变量GLOBALS,即可拿到flag。
Web4
查看源码,得到eval()函数里的代码为
|
|
输入67d709b2b54aa2aa648cf6e87a7114f1
即可拿到flag。
Web5
jsfuck编码,直接丢console回车即可拿到flag。
flag在index中
利用php://filter协议可得flag。payload:
|
|
phpcmsV9
利用的是phpcmsV9.6.0的任意文件上传漏洞,下载phpcmsV9.6.0 getshell 工具上传小马,用菜刀连接,即可在Web根目录拿到flag.txt
海洋CMS
海洋CMS 6.45代码执行漏洞。参考:seacms最新版前台getshell
访问flag32#.txt即可拿到flag。
输入密码查看flag
burpsuite五位数字爆破即可。密码为13579。
前女友
点击“链接”可看到源码,利用php弱类型和strcmp漏洞。传入?v1=240610708&v2=QNKCDZO&v3[]=
即可拿到flag。参考:php检查相等时的漏洞。
成绩单
simple sqli。很常规,爆库爆表爆字段。根据id=2
和id=2' and 1=1#
猜测sql语句为
|
|
测试id=-2' union select 1,2,3,database()#
成功显示库名为skctf_flag。
id=-2' union select 1,2,3,table_name from information_schema.tables where table_schema='skctf_flag' limit x,1#(x=0,1,2...)
得到表名为fl4g和sc。
id=-2' union select 1,2,3,COLUMN_NAME from INFORMATION_SCHEMA.Columns where table_name='fl4g' and table_schema='skctf_flag'#
得到字段名为skctf_flag。
id=-2' union select 1,2,3,skctf_flag from fl4g#
得到flag。
Web6
注释让我们以margin为键名post提交我们所发现的东西。response header有flag,base64解码2次然后POST。保持session,将response中新的flag再经过base64解码2次再POST提交,得到flag。
|
|
cookies欺骗??
将url中的filename改成aW5kZXgucGhw
(index.php的base64编码)。编程遍历line参数(line=0,1,2…)得到index.php源码
|
|
|
|
添加cookie:margin=margin
,打开/web11/index.php?line=0&filename=a2V5cy5waHA
得到flag。
XSS
尖括号被过滤。
payload: /?id=\u003cimg%20src=%23%20onerror=alert(_key_)\u003e
never give up
访问/test/1p.html抓包,拿到部分源码:
|
|
直接访问/test/f4l2a3g.txt可拿到flag。(BTW:感觉是出题人疏忽了,正解应该是用php://伪协议和00截断)
welcome to bugkuctf
利用php伪协议可拿到index.php等等的源码
|
|
|
|
因此,我们需要序列化一个Flag对象,且其变量file为flag.php。
login1
注册一个admin+n个空格的帐号来覆盖管理员帐号。再用新密码登录admin即可拿到flag。
过狗一句话
index.php便是提示中的assert一句话。找到flag.txt访问即可。
各种绕过哟
sha1在处理数组的时候会warning并返回NULL。
Web8
变量覆盖漏洞。访问/web8/?ac=test&fn=php://input并POST数据test
即可get flag。
字符?正则?
payload: /?id=keykey1111key:/1/1keya.
目测最短23位。
考细心
访问robots.txt得到/resusl.php。在/resusl.php提交GET参数x=admin
即可拿到flag
求getshell
经过大佬们的提示,上传一个jpg,尝试把Content-Type的multipart/form-data;第一个字母m改成大写M。然后把文件名改成php5即可绕过。
flag.php
提示hint,尝试了hint.php和hint.txt之后才知道要GET传参数hint得到源码。脑洞很大。
|
|
然而这题有一个坑点,变量$KEY是定义在代码的末尾的。因此在前面将反序列化之后的$cookie与$KEY相比较时,$KEY的值是为NULL的。所以我们要传入的$cookie应该是serialize("");
因此,添加Cookie: ISecer=s:0:"";
即可拿到flag。
文件包含2
本来以为一发php://filter入魂。没想到”NAIVE”了。F12提示upload.php。上传一个带php一句话的jpg,利用file参数本地包含,发现php标签被过滤成了下划线。尝试
|
|
成功显示int(1)
,菜刀连接即可看到flag文件。
wordpress
查看SUN的文章,可发现一个生日。构造字典爆破得用户名为SUN
,密码为sun19980321
。登录后有一篇私人日志,大佬提示之后才知道是数据库的帐号密码。。。
wp wzTrzYRdbrbyjAx
BTW.由于题目环境被破坏,无法复现截图:(
访问/phpmyadmin。登录之后可看到flag表,拿到flag。