首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >渗透测试TIPS之Web(一)

渗透测试TIPS之Web(一)

作者头像
Jumbo
发布2018-08-20 14:30:09
2K0
发布2018-08-20 14:30:09
举报
文章被收录于专栏:中国白客联盟中国白客联盟

侦查

1、绘制攻击面;

2、寻找子域名、ip、电子邮件,harvester是个不错的工具,可以使用如

python theHarvester.py -d chinabaiker.com -n -c -t -b google

查找相关信息;

3、一个不错的OSINT工具框架网址:http://osintframework.com/

4、查找其对应的服务、banner信息和版本信息,然后根据信息去搜寻对应的cve漏洞信息和去exploit-db上查找公开的exp信息;

5、通过https://web-beta.archive.org/搜索历史网页;

6、检查robots.txt、crossdomain.xml和clientaccesspolicy.xml;

7、查找host信息命令:

$ dig chinabaiker.com a; @8.8.8.8 # types: a, mx, ns, soa, srv, txt, axfr $ dig -x chinabaiker.com # reverse lookup

8、在谷歌上利用site:chinabaiker.com命令查找相关的信息泄漏;

9、利用https://wappalyzer.com/查找如中间件、语言、后端和服务等相关信息;

10、寻找隐藏的文件夹,如使用

https://c.darenet.org/nitemare/SecLists/tree/master/Discovery/Web_Content

里面的字典进行fuzz

$ dirb http://www.chinabaiker.com wordlists/dirb/common.txt $ nikto -host http://www.chinabaiker.com

11、利用自动化和主动式爬取应用程序的所有功能,发现隐藏内容;

12、确定入口点、技术点、确定该应用程序是做什么的、如何做到的、绘制攻击面、有哪些危险功能、框架版本其相关版本的cve漏洞信息等;

13、阅读web应用程序的客户端代码,包括它使用的是什么javascript库;

14、检查所有页面中的评论;

15、一些错误页面容易受到xss攻击;

16、观察所有参数,记录哪些参数用户get和post,看看是否能够把post转换成get;

17、观察cookie信息,包括添加、设置、删除等

18、定位header头信息

$ ./whatweb www.chinabaiker.com # identifies all known services $ dirb https://www.chinabaiker.com /usr/share/wordlists/dirb/common.txt # bruteforce

19、使用Shodan查找类似的应用程序、端点、SSH哈希密钥;

20、查找网站之前的历史漏洞。Recon-ng是个不错的工具

use recon/domains-vulnerabilities/xssposed; set source chinabaiker.com; run

21、RTFM - 在应用程序上添加DEBUG=TRUE测试是否有开发模式,是否能发现一些敏感信息;

22、测试api是否有未授权访问;

23、以攻击者的角度看待应用程序,发现应用程序最有价值的地方,比如有的时候绕过用户付费比xss跨站漏洞更有价值;

24、测试是否有逻辑漏洞;

25、如果在进行一个赏金任务,记得看下是否有新业务上线,包括一些新的代码、新的app、新的ui等;

测试输入输出

1、测试相关文件是否有备份文件,如.old、.bak

2、利用burp、nikto和dirb对web应用程序进行自动化扫描;

3、利用wpscan来对wordpress网站包括插件进行扫描攻击

4、利用cmsmap来寻找durpal和joomla的相关漏洞;

5、利用flashbang解码swf文件;

6、根据反射参数测试相关漏洞:xss、hpp、link manipulation、template injection

7、测试服务器问题(基于错误、布尔、outband、数字、单引号、双引号、),如sql注入、服务端包含、命令执行、路径遍历、 本地和远程文件包含、smtp注入、soap注入、xxe、ldap注入、xpath注入、代码之星、反序列化等;

8、如果参数里带有类似file参数,可以尝试目录遍历、文件包含等漏洞;

9、如果参数里带有类似url参数,可以尝试url跳转、ssrf等漏洞;

10、当应用程序解析xml、json时,可以测试注入、ssrf、xpath、xxe等漏洞;

11、如果参数进行如base64编码,测试攻击时也需要进行相应的编码;

12、查找基于dom的攻击,如重定向、xss等漏洞;

13、测试文件上传漏洞时,可以上传svg,利用svg来达到ssrf、xxe等漏洞;

14、在上传头像时,可以上传svg来进行恶意攻击;

服务端问题

1、http和https请求之间尝试相互转换;

2、尝试头部注入;

3、测试http请求,尝试利用任意请求方法来绕过身份验证页面;

4、测试客户端的任何程序,如flash、acticex和silverlight;

5、在测试文件上传时,可以上传双扩展名(.php5.jpeg)和使用空字节(.php5%00.jpeg)

6、尝试测试csrf;

7、如果存在以root权限运行的二进制文件,则应仅使用https验证校验或使用公钥进行检查;

8、尝试验证码绕过;

9、尝试框架注入;

10、尝试缓存中毒;

11、寻找url参数中的敏感数据;

12、寻找各种敏感信息;

13、根据数字id进行如订单越权等;

14、多尝试测试swf;

15、测试ssh弱协议;

16、测试cors策略。如果cors策略或crossdomain.xml允许子域,则可以利用子域向主域发起xss等漏洞;

17、尝试绕过CSP;

18、验证http严格传输安全性(HSTS);

19、验证X-XSS-Protection;

20、验证X-Content-Type-Options;

21、验证http公钥固定;

测试认证

1、利用burp查看认证信息;

2、401爆破

$ nmap -d -vv -p 80 --script http-brute --script-args http-brute.path=/ www.chinabaiker.com

3、测试弱口令,如空密码、空用户名、123456

4、枚举用户名;

5、测试找回密码功能,测试smtp头注入;

6、测试remember me功能;

7、在账号中删除旧的邮箱地址,添加新的邮箱,测试旧的邮箱是否还能够进行密码找回;

8、尝试不输入密码的情况下进行敏感操作;

9、密码爆破时,虽然会提示锁定,但是很可能遇到正确密码以后还是能够登录;

10、在修改密码时,尝试进行对之前登录时会锁定的密码进行爆破;

11、测试电子邮件验证邮件是否通过http传输;

12、cookie是否添加httponly、secure属性;

13、测试oauth身份验证,确保在后端是由google或第三方生成的id令牌:

https://developers.google.com/identity/sign-in/web/backend-auth#verify-the-integrity-of-the-id-token

14、测试其他的访问控制方法:https://t.co/z84ajd7bmO

15、“记住我”的功能是否会过期,查看cookie中是否有能够利用的空间;

16、测试用户唯一性;

17、测试如账号密码是否直接在url中传输;

18、在用户名和密码字段中测试空字符(%00);

19、测试用户登录失效时间;

20、尝试在请求中添加cookie信息,有些应用会读取参数并将其设置为cookie;

21、设置新密码时尝试使用老密码;

测试会话管理

1、session是否具有随机性、超时时间、是否允许多个用户同时在线;

2、测试session的含义;

3、session生成是否是可预测的,可以利用brupsuite的sequencer进行辅助测试;

4、测试javascript能否访问token;

5、测试自定义令牌能否污染日志;

6、测试令牌和会话是否绑定,能否重复使用;

7、检查会话终止;

8、检查会话固定;

9、检查cookie能否劫持用户会话;

10、检查XSRF;

11、测试是否可以在其他网站的应用程序上下文中执行认证动作;

12、检查cookie是否限定在当前域,是否设置了httponly、secure属性;

13、测试访问控制功能;

14、利用多个用户测试控件有效性;

15、测试不安全的访问控制方法,如请求参数、referer头等;

16、持久性cookie;

17、Session tokens 强度;

18、授权测试;

测试业务逻辑

1、一般最后一步测试这些问题,因为这时我们已经得知应用程序一般都会在哪里出现问题;

2、识别逻辑攻击面;

3、确定应用程序是做什么的,最有价值的是什么,攻击者想要什么;

4、通过客户端测试数据传输;

5、测试pc应用和手机应用;

6、测试客户端输入验证;

7、应用程序是否尝试将逻辑基于客户端,比如表单是否具有可以使用浏览器编辑的最大长度客户端;

8、测试厚客户端组件(java、activex、flash);

9、应用程序是否使用Java,Flash,ActiveX或Silverlight之类的东西?下载applet并进行逆向工程;

10、测试业务逻辑,测试能否绕过付款;

缓存攻击

1、如果仅验证路径,则可以提交恶意headers来达到缓存错误的结果;

2、条件竞争,获取他人数据;

3、header头注入,注入新的响应,可能会缓存攻击者控制的恶意响应;

4、使用多个主机头或x-forwarded-host,可能会导致缓存加载攻击者的站点并为其提供服务;

5、dns缓存中毒:攻击者对缓存的dns服务器创建虚假响应,所有用户在TTL之前都会收到错误的响应;

6、侧通道攻击:利用噪声、热量、电磁波进行攻击;

7、脱机web应用程序缓存中毒:利用iframe缓存钓鱼网站;

其他

1、测试wordpress站点:

$ wpscan -url http://$ip/ -enumerate p

2、wordpress密码爆破

$ python patator.py http_fuzz url=http://$ip/wp-login.php raw_request=rawlogin 0=/usr/share/rockyou.txt -l /tmp/login &; tail -f /tmp/login | grep 302

3、判断指纹

$ ./clusterd.py --fingerprint -i $ip BlindElephant.py $ip

4、请求具有特定密码的站点

$ curl --ciphers ECDHE-RSA-AES256-SHA https://$ip

5、反混淆JS

JStillery, JSNice

OAuth2

1、测试服务器是否允许在没有任何密码的情况下对用户身份进行验证;

2、认证流程:

a.用户点击登录facebook

b.用户被重定向到facebook

http://facebook.com/oauth?redirect_uri=target.com%2fcallback&state=xyz

c.如果登录成功,url被重定向到target.com

d.浏览器发出包含状态值的请求

e.客户端应验证状态值以防止csrf

3、以上可能存在的问题

a.使用包含授权代码的重定向url让受害者访问

b.url跳转:redirect_uri设置为chinabaiker.com时,当用户被重定向时,攻击者能否读取授权码

c.访问令牌复用:攻击者利用受害者的令牌进行非授权访问

DNS重绑定

1、攻击者控制attacker.com的DNS服务器;

2、用户访问attacker.com;

3、NS响应attacker.com的A记录、ip地址等;

4、浏览器获取资源,如/secrets

5、DNS响应过期,现DNS服务器使用victim.com的IP进行响应;

6、浏览器将在attacker.com源中获取victim.com/secrets信息;

7、攻击者可以将CNAME条目返回给爆破的内部主机名;

跨域请求

1、浏览器将执行具有标准内容类型的GET请求和POST

2、否则,浏览器将执行OPTIONS请求并检查CORS头信息

原文链接:https://guif.re/webpentest

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-08-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 中国白客联盟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
测试服务
测试服务 WeTest 包括标准兼容测试、专家兼容测试、手游安全测试、远程调试等多款产品,服务于海量腾讯精品游戏,涵盖兼容测试、压力测试、性能测试、安全测试、远程调试等多个方向,立体化安全防护体系,保卫您的信息安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档