有源码的渗透测试1


1. cms源码获取

1.1 框架识别:这里主要是依据web指纹技术来识别的。

  1. 文件指纹法:每个cms都有其特有的文件,这些文件可以被用来做框架识别。将特定文件生成MD5做比对。这可以自己建立数2据库,额可以利用现有的开源数据库去做积累。
  2. 参数识别法:可以利用各cms产生的特殊cookie和session的名字去做为识别指纹。数据库制作同上。

工具:wappalyzer插件、whatweb(kali)
在线平台:finger-p,潮汐指纹云悉

1.2 源码获取:

  1. 开源平台获取,比如很多cms本身是开源的。而一部分会被在各大开源平台做分享。
  2. 淘宝和二手交易平台。很多小网站开发后,开发会把框架拿出来卖。
  3. 小圈子。

1.3 分析手段:

  1. 有源码:
    代码审计+googlehacking,知道框架后可以借助google、git、blog等社区或搜索引擎来收集公开漏洞。
  2. 无源码:
    走常规渗透测试路线。

2. 源码分析:

2.1 目录结构:

目录结构的发现主要两个方向,一个通过目录爆破工具发现,一个通过源码获取。目录爆破的扫描工具很多,比如御剑的目录扫描、kali的DirBuster,Dirmap(项目git地址)。目录扫描的重点不是工,而是一个好用的字典,这个字典需要自己去积累。

在知道目录结构后,还可以通过请求一些敏感文件去获取相关信息。

  1. 后台目录

    大多数web都会有对应的后台管理程序,这个程序一般也放在web目录附近。而这个目录就是控制后台的位置,可以进行独立的测试。

  2. 模板目录

    这里面会保存一些界面文件。

  3. 数据库目录

    这个目录中可能保存有数据库的db文件,这些文件如果被下载是可以用本地相关工具去做解析从而获取整个数据库信息的。

  4. 数据库配置文件

    这个目录中会有数据库相关操作文件(查看过滤法逻辑和是否使用PDO)和配置文件(1、数据库的用户名、密码 2、数据库结构)

2.2 脚本类型:

根据文件名后缀就能发现语言。但更重要的是语言版本。比如PHP不同版本会有各自的漏洞。

  1. 解释型

    程序不需要编译,程序在运行时才翻译成机器语言,每执 行一次都要翻译一次。因此效率比较低。但是具有良好的可移植性和跨平台性。如:PHP、jsp、Python

  2. 编译型

    在开发过程中,就对程序进行编译,生成一个可执行的文件。这样虽然开发慢,但是执行快。如:asp.bet, javaweb(先编译成.class文件,而后在解释给java虚拟机执行的。所以严格不能说是编译型还是解释型。)

2.3 应用类型

  1. 用户

    在面向用户的功能中,一般都会有等级控制、注册、修改用户信息等功能。而攻击时也是针对这些功能做比如逻辑越权、SQL注入、xss注入等特定的测试的。

  2. 电商

    电商功能最重要的就是交易和付款功能,同时结合一下用户等级进行针对测试。

  3. 论坛

    论坛中一般会有留言和评论以及搜索功能。而这是SQL注入、xss和文件上传的重灾区。

  4. 博客

    同论坛攻击方向类似。

  5. 第三方

    主要是观察web上是否有安装其他的第三方功能模块,不如富文本编辑器。而这些编辑器如果开源了,那么就可以通过exp检索或者白盒审计发现攻击方向。

  6. 其他

    同上

声明:林逸blog|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 有源码的渗透测试1


网络安全,一往无前。