nmap的使用及ssi注入

前言

昨天挖的坑今天就填,顺便也记录下nmap的使用从,毕竟ssi有时候也要搭配nmap扫描的。

Nmap使用

Nmap作为一个强大的主机扫描工具,在检测主机、端口等方面有着相当强大的功能。这里记录下常用的指令,在正式使用时为了绕过往往需要多条指令联合使用。

详细使用方法可以参考下面几篇博客:
扫描工具——Nmap用法详解
Nmap的使用方法总结

主机发现

  1. -sL:列表扫描,仅列举制定目标的IP,不进行主机发现
  2. -sn:进行主机发现,不进行端口扫描
  3. -n/-R:不进行/进行DNS解析
  4. -Pn:非ping扫描,不进行主机发现,常用来绕过防火墙
  5. –traceroute:追踪每个路由节点
  6. -PA/-PS/-PU/-PY:使用TCP ACK/SYN/或SCTP INIT/ECHO方式来发现主机
  7. -sP:扫描一个段的主机在线状况
  8. -O:操作系统检测

端口扫描

  1. -sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式来对目标主机进行扫描。
  2. -sU: 指定使用UDP扫描方式确定目标主机的UDP端口状况。
  3. -sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密扫描方式来协助探测对方的TCP端口状态。
  4. -p:自定义端口扫描,可以指定端口范围或指定端口
  5. -sV/-vv:探测打开端口对应服务的版本信息/详细输出扫描结果,包含开放端口,扫描方法,端口对应服务协议等
  6. -A:万能开关扫描,包含了1-10000端口ping扫描,操作系统扫描,脚本扫描,路由跟踪,服务探测

SSI注入

什么是ssi

SSI(Server-Side Includes Injection),即服务端包含注入。SSI注入允许远程在 Web 应用中注入脚本来执行代码。

SSI是嵌入HTML页面中的指令,在页面被提供时由服务器进行运算,以对现有HTML页面增加动态生成的内容,而无须通过CGI程序提供其整个页面,或者使用其他动态技术。

从技术角度上来说,SSI就是在HTML文件中,可以通过注释行调用的命令或指针,即允许通过在HTML页面注入脚本或远程执行任意代码。

ssi语法

  1. 显示服务器端环境变量<#echo>

    1
    2
    <! #echo var="REMOTE_ADDR"–> //显示IP
    <!–#echo var="DOCUMENT_NAME"–> //显示本文档名称
  2. 将文本内容直接插入到文档中<#include>

    1
    2
    3
    <! #include file="文件名称"–>
    <! #include virtual="文件名称"–>
    file包含文件可以在同一级目录或其子目录中,virtual包含文件可以是Web站点上的虚拟目录的完整路径
  3. 直接执行服务器上的各种程序<#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也一起写了。明天考核加油。