渗透测试TIPS之Web(一)

admin 2022年6月2日07:38:10评论58 views字数 5085阅读16分57秒阅读模式

侦查


1、绘制攻击面;


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


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


查找相关信息;


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

渗透测试TIPS之Web(一)


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

原文始发于微信公众号(中国白客联盟):渗透测试TIPS之Web(一)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月2日07:38:10
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   渗透测试TIPS之Web(一)http://cn-sec.com/archives/783383.html

发表评论

匿名网友 填写信息