常见搭建平台(中间件)脚本启用
常见搭建平台脚本启用
ASP,PHP,ASPX,JSP,PY,JAVAWEB等环境
域名IP目录解析安全问题
IP地址访问可以发现更多的信息同时经常能找到程序源码备份文件和敏感信息,而域名访问只能发现一个文件夹下的所有文件。网站搭建的时候支持IP访问和域名访问,域名访问的时候一般只会指向某个目录,IP访问的时候指向的是根目录。
常见文件后缀解析对应安全
指定后缀名对应某个文件,访问网站出现遇到不能解析的文件就是中间件可能默认或者添加某些设置导致解析时出现问题。
常见安全测试中的安全防护
- 网和企业内网会限制外部人员访问内部的网站,限制IP地址,规范访问者的权限
2. 身份验证和访问控制,基于用户的限制
-
限制IP地址的访问,授权访问-只允许指定IP地址可以访问。 拒绝访问-指定IP地址拒绝访问
WEB源码中敏感文件
- 后台路径
- 配置文件
- 备份文件
web后门与用户及文件权限
-
设置相关权限,禁止来宾用户的权限,导致连接的后门看不到任何东西,它属于防护技巧,同时也是测试里经常碰到的问题
-
设置了执行权限,没有执行权限,文件不给执行,代码就无法正常执行,后门就无法正常使用
-
绕过思路
将后门试着放在其他可以执行的目录。比如,网站根目录或者其他有脚本存放的目录下面。
基于中间件的简要识别
通过抓取数据包的返回结果,查询搭建平台信息
基于中间件的安全漏洞
Web源码拓展
前言
Web源码在安全测试中是非常重要的信息来源,可以用来代码审计漏洞也可以用来做信息突破口,其中Web源码有很多技术需要简明分析。比如:获取某ASP源码后可以采用默认数据库下载为突破,获取某其他脚本源码漏洞可以进行代码审计挖掘或分析其业务逻辑等,总之源码的获取将为后期的安全测试提供了更多的思路。
关于Web源码目录结构
据库配置文件,后台目录,模板目录,数据库目录等
index.php 根据文件后缀判定
admin 网站后台路径data 数据相关目录
install 安装目录
member 会员目录
template 模板目录(和网站相关的整体架构)
data => confing.php 数据库配置文件,网站和数据库的通讯信息,连接账号密码,可以去连接对方数据库,从数据库去得到这个网站的源码里面涉及到的管理员的账号密码。
关于Web源码脚本类型
ASP,PHP,ASPX,JSP,JAVAWEB等脚本类型源码安全问题
关于Web源码应用分类
社交,论坛,门户,第三方,博客等不同的代码机制对应漏洞
开源,未开源问题, 框架非框架问题,关于CMS识别问题及后续等
拿到对方的源码或者判断这个网站的应用类型之后应该侧重在哪些漏洞上做文章
• 门户网站————————综合类漏洞
• 电商——————————业务逻辑漏洞
• 论坛——————————XSS漏洞
• 博客——————————漏洞较少
• 第三方—————————根据功能决定
关于Web源码其他说明
-
如果对方网站采用的是框架开发的话那么你面对的就是寻找框架的漏洞,如果是非框架的话寻找的漏洞针对的是代码写出来的漏洞(代码审计)
比如:thinkPHP漏洞
-
1)CMS识别:判定一个网站是用什么程序搭建的(2)CMS是Content Management System的缩写,意为”内容管理系统”。 内容管理系统是企业信息化建设和电子政务的新宠,也是一个相对较新的市场(3) 内容管理系统组成要素
○ 文档模板
○ 脚本语言或标记语言
○ 与数据库集成 -
(4)CMS识别
○ 在线工具
http://whatweb.bugscaner.com/look/
https://www.yunsee.cn/
-
开源:去网上找寻漏洞文章。直接找漏洞或审计(可以通过CMS识别出来的)
内部:常规的渗透测试,用扫描工具去判断。(找不到源码或者不知道对方的CMS名称) -
关于源码的获取途径:
• 扫描工具探测备份文件
• CMS识别技术获取CMS名称然后从网上下载
• 百度直接搜索:源码
• 咸鱼上会有卖
• 第三方源码站:比如菜鸟源码
• 各种行业对应 -
总结
关注应用分类及脚本类型估摸出可能存在的漏洞(其中框架例外),在获取源码后可进行本地安全测试(本地安全测试(手工使用工具去扫描,不需要接触代码))或代码审计,也可以分析其目录工作原理(数据库备份,bak文件等),未获取到的源码采用各种方法想办法获取
系统及数据库
前言
除去搭建平台中间件,网站源码外,容易受到攻击的还有操作系统,数据库,第三方软件平台等,其中此类攻击也能直接影响到Web或服务器的安全,导致网站或服务器权限的获取
操作系统层面
-
识别操作系统常见方法
通过网站或通过扫描相关软件识别大小写对网页都没有影响,这种情况就可以认定为windows服务器,因为windows服务器不区分大小写
也可以用TTL来判断服务器系统,相邻的值来判断
ip地址可用nmap来判断操作系统
-
简述两者区别以及识别的意义
网站路径、大小写、文件在两个系统之间的适用性,兼容性
如果判断出是哪种操作系统,就会从操作系统所支持的漏洞类型下手 -
操作系统层面漏洞类型对应意义
○ SQL注入漏洞
SQL注入攻击(SQL Injection),简称注入攻击、SQL注入,被广泛用于非法获取网站控制权,是发生在应用程序的数据库层上的安全漏洞。在设计程序,忽略了对输入字符串中夹带的SQL指令的检查,被数据库误认为是正常的SQL指令而运行,从而使数据库受到攻击,可能导致数据被窃取、更改、删除,以及进一步导致网站被嵌入恶意代码、被植入后门程序等危害。
○ 跨站脚本漏洞
跨站脚本攻击(Cross-site scripting,通常简称为XSS)发生在客户端,可被用于进行窃取隐私、钓鱼欺骗、窃取密码、传播恶意代码等攻击。XSS攻击使用到的技术主要为HTML和Javascript,也包括VBScript和ActionScript等。XSS攻击对WEB服务器虽无直接危害,但是它借助网站进行传播,使网站的使用用户受到攻击,导致网站用户帐号被窃取,从而对网站也产生了较严重的危害。
○ 弱口令漏洞
弱口令(weak password) 没有严格和准确的定义,通常认为容易被别人(他们有可能对你很了解)猜测到或被破解工具破解的口令均为弱口令。设置密码通常遵循以下原则:
(1) 不使用空口令或系统缺省的口令,这些口令众所周之,为典型的弱口令。
(2) 口令长度不小于8个字符。
(3) 口令不应该为连续的某个字符(例如:AAAAAAAA)或重复某些字符的组合(例如:tzf.tzf.)。
(4) 口令应该为以下四类字符的组合,大写字母(A-Z)、小写字母(a-z)、数字(0-9)和特殊字符。每类字符至少包含一个。如果某类字符只包含一个,那么该字符不应为首字符或尾字符。
(5) 口令中不应包含本人、父母、子女和配偶的姓名和出生日期、纪念日期、登录名、E-mail地址等等与本人有关的信息,以及字典中的单词。
(6) 口令不应该为用数字或符号代替某些字母的单词。
(7) 口令应该易记且可以快速输入,防止他人从你身后很容易看到你的输入。
(8) 至少90天内更换一次口令,防止未被发现的入侵者继续使用该口令。
○ HTTP报头追踪漏洞
HTTP/1.1(RFC2616)规范定义了HTTP TRACE方法,主要是用于客户端通过向Web服务器提交TRACE请求来进行测试或获得诊断信息。当Web服务器启用TRACE时,提交的请求头会在服务器响应的内容(Body)中完整的返回,其中HTTP头很可能包括Session Token、Cookies或其它认证信息。攻击者可以利用此漏洞来欺骗合法用户并得到他们的私人信息。该漏洞往往与其它方式配合来进行有效攻击,由于HTTP TRACE请求可以通过客户浏览器脚本发起(如XMLHttpRequest),并可以通过DOM接口来访问,因此很容易被攻击者利用
○ Struts2远程命令执行漏洞
Apache Struts是一款建立Java web应用程序的开放源代码架构。Apache Struts存在一个输入过滤错误,如果遇到转换错误可被利用注入和执行任意Java代码。网站存在远程代码执行漏洞的大部分原因是由于网站采用了Apache Struts Xwork作为网站应用框架,由于该软件存在远程代码执高危漏洞,导致网站面临安全风险。CNVD处置过诸多此类漏洞
○ 框架钓鱼漏洞(框架注入漏洞)
框架注入攻击是针对Internet Explorer 5、Internet Explorer 6、与 Internet Explorer 7攻击的一种。这种攻击导致Internet Explorer不检查结果框架的目的网站,因而允许任意代码像Javascript或者VBScript跨框架存取。这种攻击也发生在代码透过多框架注入,肇因于脚本并不确认来自多框架的输入。这种其他形式的框架注入会影响所有的不确认不受信任输入的各厂商浏览器和脚本。
○ 文件上传漏洞
文件上传漏洞通常由于网页代码中的文件上传路径变量过滤不严造成的,如果文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,攻击者可通过 Web 访问的目录上传任意文件,包括网站后门文件(webshell),进而远程控制网站服务器。因此,在开发网站及应用程序过程中,需严格限制和校验上传的文件,禁止上传恶意代码的文件。同时限制相关目录的执行权限,防范webshell攻击。
○ 应用程序测试脚本泄露
由于测试脚本对提交的参数数据缺少充分过滤,远程攻击者可以利用洞以WEB进程权限在系统上查看任意文件内容。防御此类漏洞通常需严格过滤提交的数据,有效检测攻击
○ 私有IP地址泄露漏洞
IP地址是网络用户的重要标示,是攻击者进行攻击前需要了解的。获取的方法较多,攻击者也会因不同的网络情况采取不同的方法,如:在局域网内使用Ping指令,Ping对方在网络中的名称而获得IP;在Internet上使用IP版的QQ直接显示。最有效的办法是截获并分析对方的网络数据包。攻击者可以找到并直接通过软件解析截获后的数据包的IP包头信息,再根据这些信息了解具体的IP。 -
简要操作系统层面漏洞影响范围
通过漏洞去获取权限,对操作系统形成干扰,使得某些服务崩溃
数据库层面
-
识别数据库类型常见方法(1)数据库分类
○ 小型数据库 Access
○ 中型数据库 MySQL
○ 大型数据库 Oracle、SQL Server -
(2)通过网站及操作系统识别
○ ASP+Access,sql server (windows)
○ PHP+Mysql(linux、windows) 端口:3306
○ ASPX+Mssql(windows) 端口:1433
○ Jsp+Mssql(windows),oracle (linux、windows)端口:1521
○ Python+Mongodb (linux、windows)
○ 注意:
access和mssql不支持linux操作系统 -
(3)使用nmap工具扫描,查看端口开放情况
○ sql server——–端口:1433
○ Mysql————-端口:3306
○ Oracle————-端口:1521
○ Mongodb———端口:27017 -
数据库类型区别及识别意义
每个数据库里面的安全机制,内部结构都有些许不一样,同样产生的漏洞也不一样。不同的数据库,攻击方法、漏洞类型及影响都有不同 -
数据库常见漏洞类型及攻击
弱口令攻击:通过弱口令登录到数据库中,得到网站管理员数据信息,登录网站后台,进行修改 -
简述数据库层面漏洞影响范围
通过漏洞,进行攻击,也可以获取数据库的相关权限,进行一系列的操作
第三方层面
-
如何判断有哪些第三方平台和软件
常见的第三方软件:
Jboss,PHPmyadmin,vsftpd,teamview等
比如phpmyadmin的判定• 通过网站扫描其目录来判定,如果网站探测不到,那就通过端口扫描。要多层次判断,不能仅限于端口扫描,根据不同的应用采取不同的方法。• 如果nmap扫描不出来,可能是有第三方防护软件(安全狗)等拦截。还有可能是对方服务部署在内网。 -
简述为什么要识别第三方平台或软件
通过识别第三方软件,来找出漏洞,从而进行渗透测试 -
简述第三方平台或软件安全测试的范围
直接影响到权限
其他
除去常规web安全及app安全测试外,类似服务器单一或复杂的其他服务(邮件,游戏,负载均衡等),也可以作为安全测试目标,此类目标测试原则只是少了web应用或其他安全问题,所以明确安全测试思路是很重要的