渗透师、Freebuf分享个人整理的渗透测试方法和流程

优采云 发布时间: 2021-04-29 05:21

  渗透师、Freebuf分享个人整理的渗透测试方法和流程

  编辑:本文文章由渗透工程师和Freebuf高级成员Only_Guest带来,并分享了他的个人渗透测试方法和过程。 文章穿插了许多实践经验和示例,充分展示了他们的技巧,我相信每个人都会学到很多东西。

  渗透测试方法及流程

Email:Guest#pkav.net

Site: http://www.pkav.net

Data: 2013-5-18

  1,分析目标网站的内容和功能

  ([1)首先确定用哪种语言编写网站。或者是否存在混合使用。在这里,您可以通过查看网站的源文件,观察网站的链接并捕获来获取它。提交请求。

  (2)爬网网站目录,使用该工具爬网网站目录,这可以帮助上一步使结果更准确。请对爬网结果进行存档,如果可能的话,这里应分析是否使用网站常规步骤,如果是,请记录下来。转到下一步。

  (3)根据上一步的抓取结果,对网站的根目录或密钥目录执行暴力目录检测。如果网站是通用程序,请确定是否进行了二次开发(例如非通用程序),在“查找检测到的目录中的关键目录和文件”中。

  此步骤的详细测试方法:

  1.输入并访问一些不可能存在的文件或目录名,再输入并访问一些通过目录爬行已知存在的目录及文件名,从而得知服务器如何处理无效资源.

2.使用网站爬行到的结果作为此步骤暴力目录探测的依据,扫描关键目录或全部.

3.确定服务器如何处理文件无法找到的回应,并使用关键字技术来处理这些回应.从而判断有效资源及无效资源.

4.收集此步骤暴力扫描得到的结果,并手工检测探测到目录的有效性.

5.重复以上步骤,得到更多更关键的目录及文件.

  (4)通过以上步骤,获得了完整的网站目录结构以及所有列举的目录名称,文件名和文件扩展名。了解网站开发人员的命名思路并确定其命名规则,推断出更多目录和文件名。

  此步骤的详细测试方法:

  1.检查整个列表中的文件命名规则并解释其命名基础。如果找到了几个具有相同内容的文件名addnews.php,viewnews.php,那么我们可以尝试看看是否存在editnews.php,delnews.php,通常只要看几个文件名,就可以推断出网站开发人员的命名习惯。根据他们的个人风格,开发人员可以使用各种命名方法,例如详细(addnewuser.php),简洁(adduser.php),缩写(addusr.php)或模棱两可的命名方法(addu.php)。了解开发人员使用的命名约定可以帮助猜测尚未确定的内容的确切名称。

  2.一些不同的内容命名方案使用数字和日期作为标识符,通过它们可以轻松推断隐藏的内容。静态页面通常使用这种命名方法。

  例如,在PKAV.NET的团队博客中,尚未重新定义文章中显示的图片的文件名,并且采用了增加日期和编号的命名方案,例如在文章上发布的2012年12月12日,其中的图片为1. jpg,2. jpg,3. jpg。那么这些图片的路径是/ 2012-12-12 / 1. jpg,/ 2012-12-12 / 2. jpg,/ 2012-12-12 / 3. jpg,这时我们发布了一个内容在博客上对文章进行了加密,只有团队成员知道密码,但是黑客基于先前在博客上发布的文章的命名规则进行推测。这些图片的准确地址被揭示出来,并且文章的一般概念是通过图片的内容泄漏。

  3.检查所有客户端代码,例如HTML和JS代码,并寻找隐藏服务器端的任何线索以及隐藏的表单元素等。认证检查注释的内容通常会给我们带来惊喜,例如一些通用程序。在网站主页上放置指向网站管理背景的链接,但是网站经理不希望普通访问者知道此链接,因此他们评论了内容。我们可以通过查看HTML代码来找到特定的地址。 ,并且在后端管理中调用的大多数JS通常会将所有功能模块的链接地址存储在后端中,但是在判断当前用户权限后,它是隐藏的。我们也可以直接查看JS代码。一些开发人员知道特定的内容后,会在评论内容中记录一些敏感信息。我已经从注释信息中反复获取数据库的名称,甚至可以获取数据库的特定连接信息,SQL查询语句等。

  4.将我们通过推测枚举的内容放在其他地方尝试。

  如果/ 111 /目录中存在文件a.php,那么我们可以尝试检查/ 222 /目录中是否存在相同文件,并使用一些常规后缀来尝试访问所有枚举的文件名。如果已知存在index.php文件,则可以使用诸如txt,bak,src,inc,tmp之类的后缀进行尝试,例如尝试使用index.txt,index.bak或添加到原创后缀index.php中。 bak等。这可以帮助我们获取这些文件的未编译版本,开发版本或备份文件,并且还可以通过网站使用的语言(例如Java使用的.cs后缀)来推断。

  5.搜索由开发工具或开发人员使用的文本编辑器创建的临时文件。例如SVN的.svn / entries,或由文本编辑器(例如Ultraedit)的自动备份功能创建的.bak文件,广泛使用的.tmp后缀以及旧文件(例如index.php〜1)。找到重要线索的细节,这些步骤在测试中一定不能错过。

  6.自动执行上述步骤,提取所有现有文件名,目录和后缀词干信息,并在所有目录中执行自动批处理检测。

  7.如果通过上述步骤确定了统一的命名方案,则可以使用此命名规则在整个站点下进行测试。

  8.继续重复上述步骤,以获得更多关键信息,充分发挥时间和个人想象力!

  ([5)使用公共信息,例如搜索引擎,网站快照信息以及网站使用的程序的开发人员发布的一些使用文档,以获取有关目标网站的更多信息。

  1.使用几个不同的搜索引擎和网站快照来获取目标站点的索引和历史内容记录。

  2.使用基本搜索技术,例如:

  site:www.hao123.com (返回此目标站点被搜索引擎抓取收录的所有内容)

site:www.hao123.com 关键词 (返回此目标站点被搜索引擎抓取收录的包含此关键词的所有页面.此处我们可以将关键词设定为,网站后台,管理后台,密码修改,密码找回等.)

site:www.hao123.com inurl:admin.php (返回目标站点的地址中包含admin.php的所有页面,可以使用admin.php,manage.php或者其他关键词来寻找关键功能页面)

link:www.hao123.com (返回所有包含目标站点链接的页面,其中包括其开发人员的个人博客,开发日志,或者开放这个站点的第三方公司,合作伙伴等)

related:www.hao123.com (返回所有与目标站点”相似”的页面,可能会包含一些通用程序的信息等.)

  3.搜索时,不仅可以使用网页的搜索功能,还可以尝试使用图片,新闻等功能来查找特定信息。

  4.从搜索引擎的快照中查找某些关键信息,例如程序错误消息可能泄漏网站特定路径,或者某些快照将保存一些测试信息以进行测试,例如某些网站开发了后台功能模块,未将权限认证添加到所有页面。这时,搜索引擎抓取了快照。即使稍后在网站中添加了权限验证,该信息仍将保留在搜索引擎的快照中。

  5通过搜索引擎获取目标站点的子域名,以获取更*敏*感*词*。例如,某些网站经常使用admin的子域名作为其管理背景,例如

  ([6)在Internet上采集网站个开发人员信息,例如网站开发人员,管理和维护人员以及其他信息。

  1.列出了在网站中获得的所有开发人员和维护人员的姓名和电子邮件地址以及其他联系信息,包括从网站的联系功能以及从内容中获得的HTML或JS获得的注释信息。页面。

  2.使用上面介绍的一些高级搜索技术来查找与这些人在Internet上发布的目标站点相关的所有信息,分析并找到有用的信息,例如我使用此方法获得的大型[当k14的开发人员发现他已经将自己开发的所有功能页面的源代码公开发布了网站时,可以随意下载,包括此网站的数据库链接的关键信息。内容,这使我轻松获得了这么大网站的权限。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线