ctf 基本思路

Dunm1e Lv3

得到flag参考思路

1.信息探测

1.1 扫描信息

1
2
nmap -p- -T4 IP # 探测端口
namp -T4 -A -v IP # 探测全部信息

1.2 探测敏感信息

1
2
3
4
nikto -host http://ip:port

dirb http://ip:port # 探测相关目录
#两种方法的port不可省略,80可省略

2.深入挖掘

1.1 http服务

对于大端口非htp服务,可以使用nc来探测该端口的banner信息

1
nc IP port

对于大端口http服务,可以使用浏览器浏览界面查看源代码,寻找flag值

1
http://ip地址:端口号

在扫描的全部信息里寻找是否为http服务

对于http服务,打开相关敏感页面,查看敏感信息,找到可利用的位置(包括80端口)

==注意之前用dirb和nikto扫描出来的目录==

注意到flag.txt,打开获得flag

并且这里有个passwords.html,打开发现没有什么,但是我们==查看源代码==,发现一个password:Winter,记录下来

1.2 FTP服务

FTP 匿名登陆 挖掘敏感信息

在浏览器输入

1
ftp://IP

匿名登录ftp服务器根目录

发现flag

然后在站点robots.txt文件中寻找敏感文件目录,挖掘漏洞(在扫描的信息中查看)

==注意:对于命令执行,为了绕过对应的限制,可以使用相近命令==

1
cat -> more

然后依次打开robots.txt中的目录

发现命令执行窗口

于是想到命令注入

1
2
3
127.0.0.1;id

127.0.0.1;more /etc/passwd # cat不能用

1、命令注入我们要防备其对于一些符号的过滤导致我们不能成功注入,所以我们要多了解一些符号。
2、;直接分号分隔
管道符:作用和&一样。前面和后面命令都要执行,无论前面真假
3、| 按位或
作用是直接执行|后面的语句
4、|| 逻辑或
作用是如果前面命令是错的那么就执行后面的语句,否则只执行前面的语句
5、& 按位与
&前面和后面命令都要执行,无论前面真假
6、&& 逻辑与
如果前面为假,后面的命令就不执行,如果前面为真则再执行后面命令,这样两条命令都会被执行

找到在home下的用户Summer

然后利用ssh远程连接

但是发现无法直接连接,看到扫描的端口号有个22222端口

于是利用这个端口进行连接

1
2
ssh -p 22222 Summer@IP
#输入密码 Winter

于是得到反弹shell

利用pwd ls cat more等命令

查看flag

知识点:

空格绕过:

1
2
3
4
5
6
7
8
9
$IFS
${IFS}
$IFS$1 //1 改 成 1改成1改成加其他数字貌似都行
<
<>
{cat,flag.php} //用逗号实现了空格功能
%20
%09

  • Title: ctf 基本思路
  • Author: Dunm1e
  • Created at : 2024-09-11 18:56:47
  • Updated at : 2024-09-21 12:39:09
  • Link: https://dunm1e.github.io/2024/09/11/93f6ba8bb1f2/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments