其中以我目前浅显的做题记录来看,cname和txt会用得稍微多一些,可以进行留意,比如下面这题,就把flag藏在了txt解析里

3.IP地理位置查询

这个没什么好说的,扔两个网站,再盒一下自己

国内:站长工具https://ip.tool.chinaz.com/

国外:https://www.ipaddressguide.com/ip2location

(二)基本的网站扫描技术:主机发现,目录爆破,端口扫描,OS及服务版本探测

如果说前面都是在网站这座房子外面看看样子踩踩点,现在要准备进屋了:D

PS:为了方便理解实践和我自己检索,这一部分关于msf和nmap的部分我会以软件为单元单独拎出来写

2-1-ping命令进行主机探测

伟大,无需多言,最古老传统的命令,用发送ICMP报文的方法检测活跃主机_(想了想就不在这里写ICMP报文了,感觉好像现在也没遇到需要了解这个的题)_

2-2-后台扫描

如果说前面外围信息搜集是在周围踩点,主机检测是敲敲门看看主人在不在家,那么后台扫描(这玩意和目录爆破严格来说不太一样,但在实际操作中也不是很区分)就是去找网站这座房子有哪些可以进去的门(以便更好地下手),这方面我个人常用的工具有御剑、dirsearch、和msf

听名字就可以知道,这种操作的本质其实就是爆破,通过对常用关键字的大量猜测,并根据返回的状态码扫描出可能存在的后台和文件,所以字典是必须的,一定程度上还决定了扫描的结果,当然dirsearch和msf自带字典,这里也提供一些常用的字典(其实GitHub上还挺多的)

https://github.com/rootphantomer/Blasting_dictionary

1.御剑扫描

不用我多说了吧,简单易懂的图形化页面,配好字典就可以开扫了

2.dirsearch

用得最多的一个工具,kali自带

dirsearch -u http://example.com --默认方式扫描,线程数为 20,不递归

dirsearch -u http://example.com -w <字典文件路径> --指定字典文件

dirsearch -u http://example.com -e <扩展名> --指定拓展名

dirsearch -u http://example.com -r --递归扫描

dirsearch -u http://example.com -t 20 --指定线程数

dirsearch -u http://example.com -o /path/to/output.txt --指定输出文件路径

dirsearch -u http://example.com --proxy http://127.0.0.1:8080 --使用代理

dirsearch -u http://example.com -m POST --指定请求方法,此处为post

dirsearch -u http://example.com -H "Authorization: Bearer token" --指定请求头

dirsearch -u http://example.com -H "Authorization: Bearer token" --指定排除的状态码

dirsearch --version --显示版本信息

还是拿tykd.com这个网站进行实操

比如我们通过扫描help/service这个页面

在实际渗透和做题中我们可以通过这种方法找到网站表面没有给出,但要实际进行攻击的页面

需要注意的是,由于扫描的原理其实是多次尝试爆破,频繁的请求其实会被服务器的WAF发现并采取应对措施,下图是服务器端的防火墙,在检测到频繁的请求后会对此IP采取封印措施

下图则是满屏相同的found 503,并且在访问后发现虽然扫出来了,但跳转的还是主页面,说明服务器端可能做了重定向,并且http的状态码是可以人为设定的,我们所采用的后台扫描软件可能会被欺骗,不过如何绕过WAF的这些措施又是后话了,毕竟这只是萌新向笔记

2-3-万能瑞士军刀 metasploit

mfs全程metasploit-framework,一款功能极其强大的渗透框架,分为六个模块

Exploit 模块:用于攻击已知的安全漏洞。

Payload 模块:这些是注入目标系统并执行的代码片段,分为单模式(仅需发送一次即可执行)和阶段模式(需要先建立连接再发送剩余部分)。

Auxiliary 模块:这包括了各种非漏洞利用的任务,如扫描、拒绝服务攻击、SQL注入工具等。

Post 模块:用于在成功入侵后进行后续操作,例如提升权限、收集信息等。

Encoder 模块:用于编码payload以绕过防护机制。

Nop 模块:生成NOP滑板(No Operation),通常与exploit一起使用

我们今天基本只会讲auxiliary这个模块 才不是因为其它我都不太会呢

首先输入msfconsole进入控制台

稍微用show exploits和show auxiliary可以看到模块真的非常之多,但作为萌新,我们只要搞清楚search、use、set和run就暂时够用了

①后台扫描

use auxiliary/scanner/http/dir_scanner

set THREADS 20

set RHOSTS http://tykd.com

还是对着目标网站进行一次扫描,可以看到扫出了预期结果

② 主机发现

Metasploit 中提供的主机发现模块模块位于Metasploit 源码路径的modules/auxiliary/scanner/discovery/ 目录中,在用的时候我们只需要如法炮制,将上面说过的use路径替换一下

主要有以下几个:arp_sweep、ipv6_multicast_ping、ipv6_neighbor、ipv6_neighbor_router_advetisement、 udp_probe、udp_sweep

其中两个常用模块的主要功能为:

arp_sweep:使用 ARP 请求枚举本地局域网络中的所有活跃主机。

udp_sweep:通过发送 UDP 数据包探查指定主机是否舌跃,并发现主机上的 UDP 服务。

sudo msfconsole

use auxiliary/scanner/discovery/arp_sweep

//UDP:use auxiliary/scanner/discovery/udp_sweep

set RHOSTS 192.168.144.0/24

set THREADS 2

run

arp扫到的本地网络主机

udp只扫出了两个DNS服务器(说实话我不是很懂这个是什么QAQ),没有发现udp服务

③ 端口扫描(虽然这个我一般用nmap)

use auxiliary/scanner/portscan/syn

set RHOST 47.56.157.205

set THREADS 20

run

④ 服务状态扫描

use auxiliary/scanner/telnet/telnet_version

set RHOSTS 47.56.157.205

set THREADS 5

run

use auxiliary/scanner/ssh/ssh_version

set RHOSTS 47.56.157.205

set THREADS 5

run

2-4-扫描神器,上帝之眼 nmap

① 主机发现

-sn(ping扫描方式):nmap -sn 192.168.1.0/24 --快速发现网段内存活主机

② 端口扫描(重点)

Nmap通过探测将端口划分为6个状态:

open:端口是开放的。

closed:端口关闭,没有服务监听,但主机是活动的。

filtered:端口被防火墙IDS/IPS屏蔽,无法确定其状态。

unfiltered:端口没有被屏蔽,但是否开放需要进一步确定(通常用于 ACK 扫描)。

open|filtered:端口是开放的或被屏蔽(通常用于 UDP 扫描)。

closed|filtered :端口是关闭的或被屏蔽(较少见)。

nmap的各种不同参数十分全面,用好了能解决很多问题,鉴于这是萌新向笔记和篇幅原因,这里先扔下一些我最常用的

-sS(TCP SYN 扫描 )nmap -sS 192.168.1.0/24 也是nmap的默认扫描方式,在没有输入参数的时候默认使用这种方式

-sV(服务版本检测 )nmap -sV 47.56.157.205 识别目标主机上运行的服务及其版本信息,下面是理想情况

但实际操作有时候会出现这种情况(防火墙的原因?)可以另寻他法

-p(扫描指定端口)nmap -p <端口范围> <目标>

常用格式

****

格式

描述

-p 80

扫描单个端口(如 80)。

-p 80 443

扫描多个端口(如 80 和 443)。

-p 1-100

扫描端口范围(如 1 到 100)。

-p-

扫描所有 65535 个端口。

-p U:53,T:80,443

扫描指定协议的端口(如 UDP 53 和 TCP 80、443)。

-O (设备信息和操作系统探测)nmap -O 47.56.157.205

感觉这个好像靠猜给出概率,扫了一下我自己的服务器,因为部署的服务比较少,所以除了web服务器外的信息都不是很准

-A(激进模式)nmap -A 47.56.157.205

如果希望对某台主机进行完整全面的扫描,那么可以使用nmap内置的-A选项。使用了改选项,nmap对目标主机进行主机发现、端口扫描、应用程序与版本侦测、操作系统侦测及调用默认NSE脚本扫描,-A可能会绕过某些防火墙或服务限制,获取更详细的信息。

下面是对-A扫描结果的大致解析

-F (快速模式)nmap -F -sV 47.56.157.205

快速扫描模式,只扫描常用的 100 个端口(可以与其他-s参数一起使用)。

如果你跟着文章进行了实践,你会发现有时候完成一次完整的扫描会比较久,除了调整线程数,我们还可以通过-F只扫描一百个最常用的端口,当然,这可能会有一些遗漏,但会大大加快扫描速度

(三)网站的备份和代码泄露

这部分不具体写,因为感觉属于方法大于思路的知识,不看不知道,做一遍基本就会了,重要在实际运用,给同学们推荐ctfhub和ctfshow上面都有关于这个知识点的系统题目和环境,wp的话看下面这篇CSDN大佬写的,感觉知识点讲解方面比我自己写的具体多了,所以就懒得动手了

robots.txt

ndex.phps源码泄露

www.zip泄露

.git泄露

.svn泄露

.swp vim泄露

https://blog.csdn.net/qq_49399033/article/details/136239357

其中cookie这题可以着重留意下,cookie / sessions / token / jwt 都是CTF非常容易出题的点

另外,虽然做题要一题一题熟悉原理,但其实在实际操作中备份文件的扫描也可以在更换字典后用msf的目录爆破的模块完成(毕竟原理一样)

/index.sql

/www.sql

/bak.sql

/backup.sql

/tz.php

/index.php.swp

/www.zip

/index.phps

/.bzr

/CVS

/WEB-INF/web.xml

/.svn

/.hg

/.DS_Store

/.git

/index.php.bak