当前位置:首页 >  站长 >  建站经验 >  正文

渗透测试 网站代码审计等基础方法篇

 2019-09-25 10:25  来源:A5用户投稿  我来投稿   websafe的个人主页 撤稿纠错

  短视频,自媒体,达人种草一站服务

这几天整理了下网站渗透测试中基础部分的第三节,我们SINE安全渗透工程师对代码安全审计,手工渗透测试检查代码的危险漏洞方法,找出安全问题重点,配合工具扫描来达到测试漏洞的目的,本测试重点仅限于客户授权才能操作,切记忽非法尝试入侵!以下方法只是提供网站安全检测的具体参考意见。

1.5. 代码审计

1.5.1. 简介

代码审计是找到应用缺陷的过程。其通常有白盒、黑盒、灰盒等方式。白盒指通过对源代码的分析找到应用缺陷,黑盒通常不涉及到源代码,多使用模糊测试的方式,而灰盒则是黑白结合的方式。

1.5.2. 常用概念

1.5.2.1. 输入

应用的输入,可以是请求的参数(GET、POST等)、上传的文件、网络、数据库等用户可控或者间接可控的地方。

1.5.2.2. 处理函数

处理数据的函数,可能是过滤,也可能是编解码。

1.5.2.3. 危险函数

又常叫做Sink Call、漏洞点,是可能触发危险行为如文件操作、命令执行、数据库操作等行为的函数。

1.5.3. 自动化审计

一般认为一个漏洞的触发过程是从输入经过过滤到危险函数的过程,而审计就是寻找这个链条的过程。

1.5.3.1. 危险函数匹配

白盒审计最常见的方式是通过搜寻危险函数与危险参数定位漏洞,比较有代表性的工具是Seay开发的审计工具。这种方法误报率相当高,这是因为这种方法没有对程序的流程进行深入分析,另一方面,这种方式通常是孤立地分析每一个文件,忽略了文件之间复杂的调用关系。

具体的说,这种方式在一些环境下能做到几乎无漏报,只要审计者有耐心,可以发现大部分的漏洞,但是在高度框架化的代码中,能找到的漏洞相对有限。

1.5.3.2. 控制流分析

在后来的系统中,考虑到一定程度引入AST作为分析的依据,在一定程度上减少了误报,但是仍存在很多缺陷。

而后,Dahse J等人设计了RIPS,该工具进行数据流与控制流分析,结合过程内与过程间的分析得到审计结果,相对危险函数匹配的方式来说误报率少了很多,但是同样的也增加了开销。

1.5.3.3. 灰盒分析

国内安全研究员fate0提出了基于运行时的分析方式,解决了控制流分析实现复杂、计算路径开销大的问题。

1.5.4. 手工审计方式

拿到代码,确定版本,确定能否正常运行

找历史漏洞

找应用该系统的实例

简单审计,运行审计工具看是否有漏洞

大概看懂整个程序是如何运行的

文件如何加载

类库依赖

有没有加载waf

数据库如何连接

mysql/mysqli/pdo

有没有用预编译

视图如何形成

能不能xss

能不能模版注入

SESSION如何处理

文件

数据库

内存

Cache如何处理

文件cache可能写shell

数据库cache可能注入

memcache

看账户体系

管理员账户的密码

加密方式

泄漏数据后能不能爆破密码

重置漏洞

修改密码漏洞

修改其他人密码

普通用户的帐号

能否拿到普通用户权限

普通用户帐号能否盗号

重点找没有帐号的情况下可以访问的页面

是不是OAuth

攻击

SQLi

看全局过滤能否bypass

看是否有直接执行sql的地方

看是用的什么驱动,mysql/mysqli/pdo

如果使用PDO,看是否是直接执行的地方

XSS

全局bypass

直接echo

看视图是怎么加载的

FILE

上传下载覆盖删除

包含

LFI

RFI

全局找include, require

正常上传

看上传是如何确定能否上传文件的

RCE

call_user_func

eval

assert

preg_replace /e

XXE

CSRF

SSRF

反序列化

变量覆盖

extract

parse_str

array_map

LDAP

XPath

Cookie伪造

过滤

找WAF

看waf怎么过滤的,相应的如何绕过

点击添加图片描述(最多60个字)

1.6. WAF

1.6.1. 简介

1.6.1.1. 概念

WAF(Web Application Firewall,Web应用防火墙)是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供加固的产品。 在市场上,有各种价格各种功能和选项的WAF。在一定程度上,WAF能为Web应用提供安全性,但是不能保证完全的安全。

1.6.1.2. 常见功能

检测异常协议,拒绝不符合HTTP标准的请求

对状态管理进行会话保护

Cookies保护

信息泄露保护

DDoS防护

禁止某些IP访问

可疑IP检查

安全HTTP头管理

X-XSS-Protection

X-Frame-Options

机制检测

CSRF token

HSTS

1.6.1.3. 布置位置

按布置位置,WAF可以分为云WAF、主机防护软件和硬件防护。云WAF布置在云上,请求先经过云服务器而后流向主机。主机防护软件需要主机预先安装对应软件,如mod_security、ngx-lua-waf等,对主机进行防护。硬件防护指流量流向主机时,先经过设备的清洗和拦截。

1.6.2. 防护方式

WAF常用的方法有关键字检测、正则表达式检测、语法分析、行为分析、声誉分析、机器学习等。

基于正则的保护是最常见的保护方式。开发者用一些设定好的正则规则来检测载荷是否存在攻击性。基于正则的防护较为简单,因此存在一些缺点。例如只能应用于单次请求,而且正则很难应用到一些复杂的协议上。

基于语法的分析相对正则来说更快而且更准确,这种分析会把载荷按照语法解析成的符号组,然后在符号组中寻找危险的关键字。这种方式对一些载荷的变式有较好的效果,但是同样的,对解析器要求较高。

基于行为的分析着眼的范围更广一些,例如攻击者的端口扫描行为、目录爆破、参数测试或者一些其他自动化或者攻击的模式都会被纳入考虑之中。

基于声誉的分析可以比较好的过滤掉一些可疑的来源,例如常用的VPN、匿名代理、Tor节点、僵尸网络节点的IP等。

基于机器学习的WAF涉及到的范围非常广,效果也因具体实现和场景而较为多样化。

除了按具体的方法分,也可以根据白名单和黑名单的使用来分类。基于白名单的WAF适用于稳定的Web应用,而基于黑名单则适合处理已知问题。

1.6.3. 扫描器防御

基于User-Agent识别

基于攻击载荷识别

验证码

1.6.4. WAF指纹

额外的Cookie

额外的Header

被拒绝请求时的返回内容

被拒绝请求时的返回响应码

IP

1.6.5. 绕过方式

1.6.5.1. 基于架构的绕过

站点在WAF后,但是站点可直连

站点在云服务器中,对同网段服务器无WAF

1.6.5.2. 基于资源的绕过

使用消耗大的载荷,耗尽WAF的计算资源

1.6.5.3. 基于解析的绕过

字符集解析不同

协议覆盖不全

协议解析不正确

站点和WAF对https有部分不一致

WAF解析与Web服务解析不一致

同一个参数多次出现,取的位置不一样

HTTP Parameter Pollution (HPP)

HTTP Parameter Fragmentation (HPF)

1.6.5.4. 基于规则的绕过

等价替换

等价函数

等价变量

关键字拆分

字符串操作

大小写变换

select => sEleCt

<>alert(1)

字符编码

URL编码

十六进制编码

Unicode解析

HTML

JSFuck

其他编码格式

字符干扰

注释

空字符

NULL (x00)

空格

回车 (x0d)

换行 (x0a)

垂直制表 (x0b)

水平制表 (x09)

换页 (x0c)

特殊符号

注释符

引号(反引号、单引号、双引号)

利用服务本身特点

替换可疑关键字为空

selselectect => select

少见特性未在规则列表中

2.1. 域名信息

2.1.1. Whois

Whois 可以查询域名是否被注册,以及注册域名的详细信息的数据库,其中可能会存在一些有用的信息,例如域名所有人、域名注册商、邮箱等。

2.1.2. 搜索引擎搜索

搜索引擎通常会记录域名信息,可以通过 site:域名的语法来查询。

2.1.3. 第三方查询

网络中有相当多的第三方应用提供了子域的查询功能,下面有一些例子,更多的网站可以在 8.1 工具列表 中查找。

DNSDumpster

Virustotal

CrtSearch

threatminer

Censys

2.1.4. ASN信息关联

在网络中一个自治系统(Autonomous System, AS)是一个有权自主地决定在本系统中应采用何种路由协议的小型单位。这个网络单位可以是一个简单的网络也可以是一个由一个或多个普通的网络管理员来控制的网络群体,它是一个单独的可管理的网络单元(例如一所大学,一个企业或者一个公司个体)。

一个自治系统有时也被称为是一个路由选择域(routing domain)。一个自治系统将会分配一个全局的唯一的16位号码,这个号码被称为自治系统号(ASN)。因此可以通过ASN号来查找可能相关的IP,例如:

whois -h whois.xxx.net -- '-i origin AS111111' | grep -Eo "([0-9.]+){4}/[0-9]+" | uniq

nmap -- targets-asn ---args targets-asn.asn=15169

2.1.5. 域名相关性

同一个企业/个人注册的多个域名通常具有一定的相关性,例如使用了同一个邮箱来注册、使用了同一个备案、同一个负责人来注册等,可以使用这种方式来查找关联的域名。一种操作步骤如下:

查询域名注册邮箱

通过域名查询备案号

通过备案号查询域名

反查注册邮箱

反查注册人

通过注册人查询到的域名在查询邮箱

通过上一步邮箱去查询域名

查询以上获取出的域名的子域名

2.1.6. 网站信息利用

网站中有相当多的信息,网站本身、各项安全策略、设置等都可能暴露出一些信息。

网站本身的交互通常不囿于单个域名,会和其他子域交互。对于这种情况,可以通过爬取网站,收集站点中的其他子域信息。这些信息通常出现在Java文件、资源文件链接等位置。

网站的安全策略如跨域策略、CSP规则等通常也包含相关域名的信息。有时候多个域名为了方便会使用同一个SSL/TLS证书,因此有时可通过证书来获取相关域名信息。

2.1.7. 证书透明度

为了保证HTTPS证书不会被误发或伪造,CA会将证书记录到可公开验证、不可篡改且只能附加内容的日志中,任何感兴趣的相关方都可以查看由授权中心签发的所有证书。因此可以通过查询已授权证书的方式来获得相关域名。

2.1.8. 域传送漏洞

DNS域传送(zone transfer)指的是冗余备份服务器使用来自主服务器的数据刷新自己的域(zone)数据库。这是为了防止主服务器因意外不可用时影响到整个域名的解析。

一般来说,域传送操作应该只允许可信的备用DNS服务器发起,但是如果错误配置了授权,那么任意用户都可以获得整个DNS服务器的域名信息。这种错误授权被称作是DNS域传送漏洞。

2.1.9. Passive DNS

Passive DNS被动的从递归域名服务器记录来自不同域名服务器的响应,形成数据库。利用Passive DNS数据库可以知道域名曾绑定过哪些IP,IP曾关联到哪些域名,域名最早/最近出现的时间,为测试提供较大的帮助。Virustotal、passivetotal、CIRCL等网站都提供了Passive DNS数据库的查询。

2.1.10. SPF记录

SPF(Sender Policy Framework)是为了防止垃圾邮件而提出来的一种DNS记录类型,是一种TXT类型的记录,用于登记某个域名拥有的用来外发邮件的所有IP地址。通过SPF记录可以获取相关的IP信息。

2.1.11. CDN

2.1.11.1. CDN验证

可通过多地ping的方式确定目标是否使用了CDN 等。

2.1.11.2. 域名查找

使用了CDN的域名的父域或者子域名不一定使用了CDN,可以通过这种方式去查找对应的IP。

2.1.11.3. 历史记录查找

CDN可能是在网站上线一段时间后才上线的,可以通过查找域名解析记录的方式去查找真实IP。

2.1.12. 子域爆破

在内网等不易用到以上技巧的环境,或者想监测新域名上线时,可以通过批量尝试的方式,找到有效的域名,以上等内容基础全面性比较覆盖网站安全方便的渗透测试方法,如果对此有需求可以联系专业的网站安全公司来处理解决,防止被入侵被攻击之类的安全问题。

作者: websafe    /    文章:67篇

申请创业报道,分享创业好点子。点击此处,共同探讨创业新机遇!

相关文章

  • 渗透测试 域名状态码协议讲解

    网站上线前需要对网站进行渗透测试,上一节我们Sine安全讲师讲了web的基础知识了解,明白了具体web运行的基础和环境和协议,这一节我们来讨论下域名和DNS工作原理以及http状态码和请求的协议来分析检测中的重点域名收集。

  • wordpress漏洞修复方案之第三方插件漏洞

    wordpress系统本身代码,很少出现sql注入漏洞,反倒是第三方的插件出现太多太多的漏洞,我们SINE安全发现,仅仅2019年9月份就出现8个插件漏洞,因为第三方开发的插件,技术都参差不齐,对安全方面也不是太懂导致写代码过程中没有对sql注入,以及xss跨站进行前端安全过滤,才导致发生sql注入

  • 网站漏洞检测 CSRF代码攻击与加固方案

    XSS跨站以及CSRF攻击,在目前的渗透测试,以及网站漏洞检测中,经常的被爆出有高危漏洞,我们SINE安全公司在对客户网站进行渗透测试时,也常有的发现客户网站以及APP存在以上的漏洞,其实CSRF以及XSS跨站很容易被发现以及利用,在收集客户网站域名,以及其他信息的时候,大体的注意一些请求操作,前端

    标签:
    网站漏洞检测
  • 网站漏洞检测 squid反向代理存在远程代码执行漏洞

    在对网站进行渗透测试的时候,发现很多网站都在使用squid反向代理系统,该系统存在可以执行远程代码的漏洞,很多客户找我们SINE安全做渗透测试服务的同时,我们会先对客户的网站进行信息搜集工作,包括域名,二级域名收集,网站使用的反向代理系统,网站程序开发语言,是否使用开源的代码,以及网站后台路径收集,

  • 如何修复网站漏洞 全局变量覆盖漏洞的修复方式

    临近9月底,seacms官方升级海洋cms系统到9.95版本,我们SINE安全在对其源码进行网站漏洞检测的时候发现问题,可导致全局变量被覆盖,后台可以存在越权漏洞并绕过后台安全检测直接登录管理员账号。关于该漏洞的具体详情,我们来详细的分析一下

    标签:
    网站漏洞检测
  • 手机网站在建设中 能够提升利用率的一些要点

    在大部分上班族挤地铁或是公交车上下班的图中,也许打开手机浏览一些网页是很多白领获取信息的一个非常重要的方式。为了针对这些用户的需求,也有越来越多的企业开始重视手机网站的建设,因为手机网站如果能够建设得当的话可以给这些人带来非常不错的体验。

    标签:
    手机网站建设
  • 哪些类型的网站不适合使用虚拟主机?

    在如今的很多站长进行建站时,可能都会考虑选择虚拟主机。虚拟主机对比传统服务器,具有一定的优势,如操作简单、性价比也更高等特点,但也不可否认的是,虚拟主机在某些方面也具有较大的局限性,这也意味着并不是每一种网站都适合使用虚拟主机。今天与大家分享一些不适合使用虚拟主机的网站类型

    标签:
    虚拟主机
  • 网站安全防止被黑客攻击的办法

    从今年3月份全世界黑客攻击网站分析局势来看,黑客攻击的网站中中国占有了绝大多数。那麼作为一个公司或是开发公司,如何防止自身的网站黑客攻击,从企业网站建设之初,就应当搞好这种安全对策,当你的网站保证以下几个方面都做好了的话,相对性是较为安全的。

  • 一个小白影视站长的成长推广经历

    视频网站及抖音快手推广,可以通过视频剪辑的方式上传一些视频,到酷6,土豆,优酷,抖音,快手,上传视频都印上网站的LOGO或导入公众号。通过这样的方式也会为网站带来不少流量。

  • 电商时代,企业搭建商城系统的优势有哪些

    通过网上商城,消费者足不出户,即可轻松享受从产品咨询、下单、付款到收货的一站式客户体验。为了增强电商平台的互动性,独立商城系统还可以提供在线咨询、电话咨询与网络留言三种互动途径,消费者可以自由选择适合自己的方式与专职客服人员进行交流,互动性得到了显著提高。

    标签:
    商城系统
  • 建站CMS系统:织梦dedeCms、PageAdmin、帝国优缺点比较

    之前一直使用dedeCms建站的,时间也算很长了,但是最近我们公司用dede做的网站被频繁被挂马,网上已经找不到解决方法,客户天天投诉,dedecms从原创团队解散后,几年了基本没有什么更新和维护,没有办法只能重新寻找新的cms改版。

  • 痛定思痛!Shopify大规模封店给我们跨境卖家的启示

    就在昨天中午,毫无预兆的情况下,我们的Shopify店铺无法打开了,只显示wewillcomingsoon的提示。随后我们在一个群里也发现很多人跟我们一样遭遇,同样是没收到邮件通知,也没有任何先兆。

    标签:
    自助建站系统
  • 为什么在建站时最好选择独立IP的服务器

    企业网站在建设时,有一部分站长会为了让网站做的更加出彩选择在服务器方面压缩成本,所以会拒绝使用独立服务器,转而选择一些较为经济的空间。这其实是一种错误的做法,服务器是网站运营的根本,即使在网站设计方面节约一些成本,也一定要选择一个好的服务器,否贼会给网站日后的运营带来很多麻烦,省下的成本也许会在日后

    标签:
    独立IP主机
  • 在进行网站建设时 如何选择合适的服务器

    随着互联网带给传统行业的冲击越来越大,有很多企业都不得不选择通过搭建网站来保证自身的收益,但网站的搭建也并不是一件简单的事情,如果网站不能给用户带来很好的体验,那么可能就无法为企业带来正面的效果,反而会白白浪费运营网站的成本。

  • 谈谈分销系统那些事

    分销系统是新兴事物,有些老板对于分销系统这个行业的知识了解比较少,就会造成在选择分销系统公司时,有一些考虑不周全的地方,可以说有不少老板做分销系统的历程可谓是千辛万苦,不知道什么时候就出现了超出自己想象的麻烦。

    标签:
    分销系统
榜单

热门排行

信息推荐

扫一扫关注最新创业资讯