admin管理员组文章数量:1663052
信息收集
- 基础信息:源码信息,组件等
- 系统信息:windows/linux(大小敏感,ttl值参考)
- 应用信息:网站的功能类型等信息
- 防护信息:面板,waf等
- 人员信息:账户、弱口令、身份信息等
- 源码类型的判断:文件后缀,请求头信息等
- 中间件:请求头参考
- 数据库判断:常见的脚本搭配(php+mysql aspx+mssql等),默认端口的参考,扫描器(nmap,appscan,网页在线扫描)
-
端口探测:通过nmap结合masscan一起来扫描,扫的时候尽量做全端口扫描,就是扫1-65535端口
21、22、23、135、3389、1433(mssql)、6379、7001、27017mogondb、11211memcached、2049NFS、389LDAP、1099idea、873rsync、2083cpanel主机管理、3312kangle主机管理、4848glassfish、5984couchDB、2601zebra路由等等这些端口
- 查询备案信息:上企查查、天眼查等查询备案信息,里面会包含有它几乎所有的合法域名信息并看到备案网站
- 收集子域名信息:工具像subdomainsbrute、oneforall、 layer等等,在线平台像fofa、shodan、微步在线、百度谷歌、github,还有一些这种专查子域名的平台: 在线子域名查询等
然后是找这些域名对应的真实ip,找真实ip方法比较多,有很多域名上了cdn,需要绕一下cdn,可以通过fofa查询、DNS记录查询、通过多地ping子域名、通过注册帐号看邮件ip头,还可以借助一些工具判断
「技术点」:cms/框架识别,端口扫描,cdn绕过,源码获取,子域名扫描,子域名信息查询,waf识别,负载均衡识别(lbd)等
然后遇到过一个很离谱的问题,数据库还需要考虑站库分离?
于是我回答到:考虑**啊,直接干,都搞这些了就已经很刑了,还怕啥啊,直接干,要是有不懂的我给你讲解一下网络安全法这些,不要怕,直接干。ps:附上我之前讲课ppt的首页截图,名字我改成我csdn上的了
资产信息收集
针对子域名以及ip地址开放的web端口服务,我经常用goby、xray、awvs等工具扫一些常见web漏洞,扫到了就是赚的,不影响人家、不搞破坏,当个纯净的src还是可以的
一些小技巧
- CMS识别: 尝试获取源码(开源,售卖,自研,未公开)
- 用dirsearch、御剑这些扫目录、扫后台、扫敏感信息针对收集信息
- 备份文件泄露,敏感文件css等可能存在特征: 使用子域名扫描可能存在特殊的备份文件被开发者将源码打包.....ps:比如robots表、upload等等
- 资产监控: github,gitee.....ps:源码获取可以在 github泄露,github语法查询
以下都尽量使用工具,不排除有大佬可以不需要
- git信息泄露: 访问 xxx/.git 文件 403或存在即可尝试获取源码
- svn信息泄露: 访问xxx/.svn/entries 内容存在即可尝试获取源码
- DS_Store泄露: 该文件为mac下的数据文件,访问存在即可尝试获取源码
- php特性配置说明文件composer.json泄露: 访问composer.json存在即可尝试获取源码相关信息
- web-inf/web.xml泄露 其他的cvs,bzr泄露等现在很少遇见,毕竟时代在改变
- github语法查询源码 查询相关的敏感信息也可能获取到信息
漏洞利用
常见的几个漏洞
owasp top10 | 十大常见漏洞
开放式Web应用程序安全项目(OWASP,Open Web Application Security Project)是一个组织,它提供有关计算机和互联网应用程序的公正、实际、有成本效益的信息。其目的是协助个人、企业和机构来发现和使用可信赖软件。
简单介绍一下有哪些
1、注入漏洞
1.原理:我就不介绍了,太多了,可以自己上网查
2.攻击方式:利用应用程序弱点,通过恶意字符将恶意代码写入数据库,获取敏感数据或进一步在服务器执行命令。
3.漏洞原因:
1、未审计的数据输入框
2、使用网址直接传递变量
3、未过滤的特殊字符
4、SQL 错误回显
4.漏洞影响:
1、获取敏感数据或进一步在服务器执行命令接管服务器
2、SQL 注入:常见的注入包括:SQL、OS 命令、ORM、LDAP和表达式语言或者 OGNL 注入,对于应用解释器来说这些概念都是相同的。对于最常见的SQL注入,后端开发人员经常会拼接 SQL 查询;在不经意间就引入了 SQL 注入漏洞。
5.SQL 注入防护
1、关闭 SQL 错误回显
2、前端输入字符白名单验证(长度、类型等)
3、对输入的特殊字符使用转义处理
4、SQL 操作使用 PreParedStatement
5、SQL 服务运行于专门的账号,并且使用最小权限
6、限制 SQL 服务的远程访问,只开放给特定开发人员
7、代码审计,最有效的检测应用程序的注入风险的方法之一
8、使用成熟的 waf
2、失效的身份认证
1.攻击方式:攻击者利用网站应用程序中的身份认证缺陷获取高权限并进行攻击应用服务
2.漏洞原因:应用程序身份认证系统认证缺陷
3.漏洞影响:
1、盗用账号与身份.....ps:俗称身份信息泄露
2、常见设计缺陷......ps:可以理解偷懒
3、修改利用网络协议数据包获取使用者账号密码
4、网站设计不良,可直接绕过验证页面......ps:没有做防护的,都可以绕过,验证码也一样
5、使用者忘记注销,而让攻击者有可趁之机.......ps:就是那种没关机的,我同事就有一个被领导抓住了,好可怜
6、弱密码攻击......ps:身份认证非常容易受到弱密码攻击,常用的弱密码攻击方式:有
(1)常用密码攻击 - 使用泄露的密码字典攻击
(2)使用公司名称缩写、域名、电话号码
(3)全数字、英文的简单密码
(4)账号与密码相同的
(5)不同网站、电脑、APP 使用了相同的密码
4.漏洞防护:
三个重要点
1、网站的登录页面就使用加密连接
2、网站应该具体良好的权限控制与管理
3、网站应该具备超时注销机制
一般都会用waf、D盾等等防护,自己个人主机就直接防火墙、360、火绒、卡巴斯基等等,自由选择
3、敏感数据泄露
1.攻击方式:常见的攻击方式:主要是扫描应用程序获取到敏感数据
2.漏洞原因:
1、应用维护或者开发人员无意间上传敏感数据,如 github 文件泄露
2、敏感数据文件的权限设置错误,如网站目录下的数据库备份文件泄露
3、网络协议、算法本身的弱点,如 telent、ftp、md5 等
3.漏洞影响:
1、应用程序、网站被修改
2、个人资料、公司资料泄露,被用于售卖获利、挖矿等等
4.漏洞防护:
1、对于 github 泄露,定期对仓库扫描
2、对于应用网站目录定期扫描
3、使用强壮的网络协议与算法
4、XML 外部实体漏洞
1.攻击方式:当应用程序解析 XML文件时包含了对外部实体的引用,攻击者传递恶意包含 XML 代码的文件,读取指定的服务器资源。
2.漏洞原因:XML 协议文档本身的设计特性,可以引入外部的资源;定义 XML 文件时使用的外部实体引入功能
3.漏洞影响:
1、读取服务器敏感资料,如、/etc/password、/robots等等
2、读取应用程序源码
4.漏洞防护:
关闭 DTD (Data Type Definition)
禁止外部实体引入
5、无效的访问控制
1.攻击方式:没有检查身份,直接导致攻击者绕过权限直接访问......ps:比如验证码绕过等等
2.漏洞原因:
1、绕过路径,如未读取的参数做检查,导致路径绕过读取到敏感文件
2、权限提升,如未对权限做检查,导致攻击者变更权限
3、垂直越权,攻击者可以从普通的用户权限提升到管理员的权限访问应用程序
4、水平越权,攻击者可以从普通用户A的权限提升到普通用户B的权限访问应用程序
3.漏洞防护:
1、对参数的白名单过滤
2、对权限的控制管理重新设计与限制
3、限制下载文件的类型
6、安全配置错误
1.攻击方式:攻击者利用错误配置攻击,获取敏感数据或者提升权限
2.漏洞原因:开发或者维护人员设置了错误的配置,如 python 开发中对于 Django 框架在生产环境启用了 Debug 模式,然后就导致python各种漏洞层出不穷
3.漏洞影响:
1、可让攻击者获取到敏感数据
2、可让攻击者提升权限,如未修改应用程序配置的默认密码,未删除应用程序安装程序目录文件等
7、目录遍历
这个没啥好介绍的,举个栗子.....././././*,
1.漏洞防护:就是以下几点:
1、检查文件扩展名
2、重命名上传文件
3、控制上传文件的权限,如关闭执行权限
4、移除不使用的页面,如安装目录文件
5、移除临时文件、备份文件
6、不使用简单的命名规则,防止猜测
7、定义白名单
8、跨站脚本攻击......ps:xss(dom型、存储型、反射型)
1.攻击方式:
攻击者使用恶意字符嵌入应用程序代码中并运行,盗取应用程序数据
常见攻击 payload><script>alert(document.cookie)</script>='><script>alert(document.cookie)</script>"><script>alert(document.cookie)</script><script>alert(document.cookie)</script><script>alert (vulnerable)</script>%3Cscript%3Ealert('XSS')%3C/script%3E<script>alert('XSS')</script><img src="javascript:alert('XSS')"><img src="http://888.888/999.png" οnerrοr="alert('XSS')"><div style="height:expression(alert('XSS'),1)"></div>.......ps:网上有好多xss网站可以自行斟酌,但是不能搞坏事,不然警察蜀黍会问你是喜欢银手镯还是铁栅栏啊嘿嘿
2.漏洞原因:
应用程序未对应用输入做过滤与检查,导致用户数据被当作代码执行。
3.漏洞影响:
1、欺骗使用者点击嵌入了恶意网站的正常网站,获取使用得的敏感数据
2、盗取使用者 cookie,冒用使用者身份
4.漏洞防护:
验证输入/接收的字符,过滤或者替换非法字符
使用白名单机制
9、不安全的反序列化漏洞
1.攻击方式:攻击者利用应用程序反序列化功能,反序列化恶意对象攻击应用程序。
2.漏洞原因:应用程序在反序列化数据对象时,执行了攻击者传递的恶意数据对象
3.漏洞影响:
1、最严重情况下,可导致远程代码执行 RCE
2、注入攻击、文件上传
3、越权、提权
4.漏洞防护:
1、对数据对象签名,并作完整检查
2、数据对象中的数据做严格的类型检查,限制一部分恶意攻击
3、隔离反序列化操作环境
10、使用含有已知漏洞的组件
1.攻击方式:利用应用程序技术栈中的框架、库、工具等的已知漏洞进行攻击,获取高权限或者敏感数据
2.漏洞原因:应用程序技术栈中使用的框架、库、工具爆出了漏洞,应用程序未能及时更新与修复......ps:比如前段时间的向日葵,确实向日了....
3.漏洞影响:
1、敏感数据泄露
2、提升权限
3、远程代码执行
4.漏洞防护:
1、及时更新、修复组件漏洞
2、移除不再使用的依赖组件
再来说说一些其他的漏洞
中间件漏洞
针对ip地址开放的其他非web端口,我们就可以利用这些端口经常存在的一些漏洞来直接利用,像4848对应的是glassfish,它一般有任意文件读取漏洞,像6379对应的redis,它一般有未授权访问漏洞,可以写shell,反弹shell,像7001对应的weblogic,它有反序列化漏洞,SSRF漏洞,还有默认口令漏洞,像2049对应的nfs服务,它可以通过远程挂载来写文件甚至是写shell
cms漏洞
另外我们可以针对这些子域名或ip开放的web服务,进行cms识别,就是识别这些网站用了哪些模板或框架,比如discuz!,dedecms,phpcms,shiro、struts2等,然后在网上找这些模板或框架对应的漏洞,往往可以快速getshell
逻辑漏洞
最后就是针对这些网站,找一下业务逻辑层面的漏洞,像越权、密码找回、竞争条件、验证码安全、业务接口调用等等
日志记录和监控不足导致的风险
对于日志记录的监控不足,造成攻击者攻击系统、应用、盗取数据等操作无法被发现和追查。hvv期间和重保期间尤其重要,参加过的大牛们应该都明白重要性
目前暂时就写这么多,不是因为懒,好吧,就是因为懒......
版权声明:本文标题:漏洞挖掘的小知识 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1729982016a1218358.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论