前言
昨天挖的坑今天就填,顺便也记录下nmap的使用从,毕竟ssi有时候也要搭配nmap扫描的。
Nmap使用
Nmap作为一个强大的主机扫描工具,在检测主机、端口等方面有着相当强大的功能。这里记录下常用的指令,在正式使用时为了绕过往往需要多条指令联合使用。
详细使用方法可以参考下面几篇博客:
扫描工具——Nmap用法详解
Nmap的使用方法总结
主机发现
- -sL:列表扫描,仅列举制定目标的IP,不进行主机发现
- -sn:进行主机发现,不进行端口扫描
- -n/-R:不进行/进行DNS解析
- -Pn:非ping扫描,不进行主机发现,常用来绕过防火墙
- –traceroute:追踪每个路由节点
- -PA/-PS/-PU/-PY:使用TCP ACK/SYN/或SCTP INIT/ECHO方式来发现主机
- -sP:扫描一个段的主机在线状况
- -O:操作系统检测
端口扫描
- -sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式来对目标主机进行扫描。
- -sU: 指定使用UDP扫描方式确定目标主机的UDP端口状况。
- -sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密扫描方式来协助探测对方的TCP端口状态。
- -p:自定义端口扫描,可以指定端口范围或指定端口
- -sV/-vv:探测打开端口对应服务的版本信息/详细输出扫描结果,包含开放端口,扫描方法,端口对应服务协议等
- -A:万能开关扫描,包含了1-10000端口ping扫描,操作系统扫描,脚本扫描,路由跟踪,服务探测
SSI注入
什么是ssi
SSI(Server-Side Includes Injection),即服务端包含注入。SSI注入允许远程在 Web 应用中注入脚本来执行代码。
SSI是嵌入HTML页面中的指令,在页面被提供时由服务器进行运算,以对现有HTML页面增加动态生成的内容,而无须通过CGI程序提供其整个页面,或者使用其他动态技术。
从技术角度上来说,SSI就是在HTML文件中,可以通过注释行调用的命令或指针,即允许通过在HTML页面注入脚本或远程执行任意代码。
ssi语法
显示服务器端环境变量<#echo>
1
2<! #echo var="REMOTE_ADDR"–> //显示IP
<!–#echo var="DOCUMENT_NAME"–> //显示本文档名称将文本内容直接插入到文档中<#include>
1
2
3<! #include file="文件名称"–>
<! #include virtual="文件名称"–>
file包含文件可以在同一级目录或其子目录中,virtual包含文件可以是Web站点上的虚拟目录的完整路径直接执行服务器上的各种程序<#exec>
1
2<!--#exec cmd="cat /etc/passwd"-->
<!--#exec cgi="/cgi-bin/access_log.cgi"–>
ssi探测
如果在网站目录中发现了.stm
,.shtm
,.shtml
,并且网站对于ssi的输入没有做到严格过滤,很有可能被ssi注入攻击。这时获取信息一般要会用到nmap以及dirb。
还可以从业务场景来判断,如果有获取IP、定位、时间等等都可能是用ssi实现的,这时可能会存在ssi注入。
总结
其实这篇博客挺水的,因为本来ssi也基本很少考到,因此就连着nmap也一起写了。明天考核加油。