渗透测试个人总结贴

  • A+
所属分类:安全文章

OWASP TOP 10

1、注入2、失效的身份认证和会话管理3、XSS 4、脆弱的访问控制 5、安全配置错误6、敏感数据暴露7、不充足的攻击检测与预防8、CSRF 9、应用已知脆弱性的组件10、未收保护的API

 

Sql注入

原理:通过输入构造域名或页面请求的字符串达到欺骗服务器执行恶意SQL命令。有布尔型注入(构造and条件判断页面返回情况获得信息),报错型注入(构造能够报错的sql命令获得报错信息),联合查询注入(union),多语句查询注入(select;select),基于时间延迟注入(加入判断和时间延迟语句)。

 

修复方式:

1、  过滤输入语句;

2、参数化处理

 

 

XSS

跨站脚本攻击,攻击者将恶意脚本代码注入到网页中,当其他用户浏览这些网页时执行其中的恶意代码。

 

修复方式:

1、  使用xss filter:输入过滤以及输出编码;

2、  Web安全编码规范:将能触发XSS的字符使用相应的HTML实体代替(<转成&It);

3、  使用浏览器插件:Firefox的NoScript插件,IE8的XSS Filter;

4、  使用HTTP-only的cookie;

 

 

CSRF

跨站请求伪造,源于web的隐式身份验证机制,冒充其他用户在站内的正常操作。

 

测试方法:

1、修改请求包中Referer值,生成CSRF POC测试;

 

修复方式:

1、  代替GET使用POST提交方式;

2、  客户端提交表单增加伪随机数的hash值,在服务端验证hash;

3、  使用token方式进行身份验证;

4、  为表单增加验证码;

5、  增加http的Referer验证,判断请求是否同域;

 

 

网站劫持

主要被黑帽用来做SEO(Search Engine Optimization,搜索引擎优化)。

 

实现网站劫持的步骤:

1、  入侵相关网站

2、  在网站中插入Js或修改配置文件,增加相应的劫持代码。一般会加入判断条件,一般会根据IP归属地、refer(是否是爬虫)和user-agent(设备)。

3、  大多数判断如果是人工会返回正常的网站;如果是爬虫会返回相关黑客设置的网站。

 

测试方法:

1、  对于前段劫持,可以通过抓包和源码分析来查看相应js代码。

2、  对于服务器劫持,对网站的全局脚本文件(例如conn.php)进行完整性测试。生成hash值定期完整性测试可以有效防止网站劫持。

相关链接:http://www.freebuf.com/articles/web/153788.html

 

 

反序列化漏洞

影响weblogic、websphere、Jboss和Jenkins等java应用服务器。

 

原理:序列换是将对象转换成字节流,便于保存在内存、文件、数据库中;反序列化及逆过程,由字节流还原成对象。ObjectOutputStream类的writeObject()可以实现序列化,类ObjectInputStream类的readObject()可以实现反序列化。反序列化时没有对对象的类型做限制就会造成反序列化漏洞。

 

修复方式:

1、设置对象类型白名单;

2、Java9 最新特性JEP 90提供一种机制,在处理对象输入流是过滤传入数据;

 

 

XXE

XML外部实体注入(XML ExternalEntity),当允许引用外部实体时导致的漏洞,可能导致DOS、内网信息泄露等。

 

修复方式:

1、检查使用的底层xml解析库,默认禁止外部实体解析;

2、增强对系统监控

 

SSRF

使用用户指定的URL,web应用可以获取图片、下载文件、读取文件内容等,可以利用存在缺陷的web应用作为代理攻击远程和本地的服务器,包括对内网进行扫描、文件读取等;

 

验证方法:

1、  右键图片打开判断图片是来自原始网址,则不存在漏洞;

2、  抓包判断加载图片时本地发起了加载图片的请求,则不存在漏洞;

 

修复方式:

1、  过滤返回信息,验证服务器对请求的响应;

2、  统一错误页面信息,限制请求端口,黑名单内网ip,禁用不需要的协议,防止内网渗透;

 

 

文件上传

上传可执行恶意脚本

 

验证方法:

1、上传恶意执行文件,绕过方式包括:抓包绕过前端校验;修改Content-Type;绕过服务器扩展名检测(服务器解析漏洞);利用00截断;构造图片马等

 

修复方式:

1、   检查文件类型,前端和后端校验,对HTTP Header的Content-Type、扩展名、文件头内容来检查文件类型;

2、   限制文件行为,尤其是执行权限;

3、   白名单;

 

 

文件下载

查看和下载服务器文件的漏洞

 

验证方法:构造下载url使可以下载指定位置或名称的文档

 

修复方式:

1、  过滤(.)使不允许回溯上级目录;

2、  正则判断用户输入参数;

3、  下载区独立,放置在项目路径外,给每个下载资源固定的url;

 

 

逻辑绕过

通过对业务流程的梳理,实现业务逻辑绕过(用户身份验证绕过等)的漏洞。

 

 

重定向漏洞

用户可控制的输入导致浏览器访问指定URL会导致重定向漏洞。可以提高攻击者可信度的攻击方式。

 

修复方式:

1、  验证和过滤用户输入;

2、  白名单跳转域;

 

信息泄露

查看页面是否显示了敏感数据和内容,以及泄露服务器版本等的配置文件以及错误页面。

 

 

Csv注入

当应用需要用户输入一些数据并且管理员将这些数据导出到csv文件中。Csv文件中如果有“=”,后面的命令可以执行。


转自:http://blog.csdn.net/u010726042/article/details/78604890

本文始发于微信公众号(LemonSec):渗透测试个人总结贴

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: