一.DirBuster扫描目录

hack the box是一个在线Web渗透实验平台,能帮助你提升渗透测试技能和黑盒测试技能,平台上有很多靶机,从易到难,各个级别的靶机都有。因为这些靶机放在平台上供大家测试,每个靶机都有自己的静态IP地址和端口号,而且模拟真实环境,推荐大家去练习。

[20 Points] Fuzzy [by Arrexel]

We have gained access to some infrastructure which we believe is connected to the internal network of our target. We need you to help obtain the administrator password for the website they are currently developing.

我们已经获得了一些已连接到目标内部网络的基础架构的访问权限,需要您帮助获取他们当前正在开发网站的管理员密码。

host: docker.hackthebox.eu port:30275
这是一道入门题目20分,打开网址如下图所示。由于该页面是纯静态的,没有什么调用功能,再加上提示是Fuzzy(模糊测试),那就工具上手吧!这里先使用之前介绍过的目录扫描工具——DirBuster。

DirBuster是Owasp(Open Web Application Security Project )开发的一款专门用于探测网站目录和文件(包括隐藏文件)的工具。由于使用Java编写,电脑中要装有JDK才能运行,它是一个多线程Java应用程序,旨在强制Web /应用程序服务器上的目录和文件名。

前文分享:[网络安全自学篇] 八.目录及端口扫描之Nmap、ThreatScan和DirBuster工具

第一步,打开软件如下图所示。

第二步,发现该网站没有可利用的点,直接输入URL并点击Browse加载字典文件,设置线程数100,“Start”开始扫描。

扫描结果如下图所示,时间稍微漫长些。

正确的目录不会报错且响应200(OK),例如能正确显示的文件夹“api”;错误的目录或文件显示红色,表示不存在或访问无响应。

第三步,通过Fuzzy找到api目录,并且action.php文件。它是可疑目录,我们尝试浏览器访问。

第四步,访问 “…/api/action.php”后发现缺少Parameter参数,接着使用DirBuster扫描参数Parameter。

扫描方法相同,但需要勾选“Auto Switch”,然后设置自定义路径“/api/action.php?{dir}=fe”。注意,这里的匹配参数是{dir},非常棒的一种扫描方法。

由于只是扫描参数,很快我们的结果“reset”就成功扫描出来。

如果是Linux环境下,运行结果如下图所示:

接着访问,发现参数所对应的值ID错误,接着扫描ID值。

第五步,接着暴力爆破参数ID值,此时设置为“/api/action.php?reset={dir}”。

扫描结果如下图所示:

接着通过浏览器访问,成功获取HTB{I love CSDN!}。

同样,如果您是Linux环境,扫描结果如下图所示:

简单总结:

这篇文章主要讲解了模糊测试Fuzzy基本知识,涉及DirBuster工具的基本用法,包括扫描目录、获取参数变量、获取参数对应的值,是一个Web扫描的好案例。但缺点是比较耗时,同时过度扫描会引起目标怀疑或服务器奔溃,这些都是问题。如果hack the box服务器拒绝了我们的连接请求,重新启动连接,换个端口试试。

自此,我们Web渗透的题目成功完成了4道,非常基础的四种方法。

二.Sqlmap高级用法及管理员口令获取

[30 Points] FreeLancer [by IhsanSencan]

Can you test how secure my website is? Prove me wrong and capture the flag!

我的网站安全吗?证明我是错误的并找出flag吧!

通过URL和端口打开网页,显示如下图所示:

点击上面的选项或下拉条,会局部跳转或滑动到后续页面。

随机输入用户名和面,会提示错误。

1.人工检测

一个长期存在的事实是,当读者在看一个页面的布局时,他们会被可读的内容分散注意力。那线索会不会在源码中?

第一步,我们查看源码,发现了线索“contact_me.php”。

访问contact_me.php页面,反应如下,这是一个假的线索,我们渗透中也会经常遇到。

第二步,继续查看源代码,发现一个调用id参数的页面,并且被注释掉了,它才是真实的线索。

从完整源码中也是可以发现的。

或者调用BurpSuite,通过服务器返回的页面信息,也能发现这个调用id参数的线索。

难点: 如何才能找到这种细微漏洞呢?通过审查元素观察吗?或是爆破目录呢?个人认为,这里的扫描、查看源代码以及渗透经验都是关键,跟着作者慢慢积累吧!

第三步,我们访问该页面:http://docker.hackthebox.eu:30471/portfolio.php?id=1。

Log Cabin 1 - Lorem ipsum dolor sit amet, consectetur adipisicing elit. Mollitia neque assumenda ipsam nihil, molestias magnam, recusandae quos quis inventore quisquam velit asperiores, vitae? Reprehenderit soluta, eos quod consequuntur itaque. Nam.

通过手动检测,发现它是一个基于布尔的sql注入(布尔注入反馈True或False)。检测方法是测试URL加单引号id=1’,返回不正确页面。TRUE页面存在“you are in…”,FALSE页面不存在“you are in …”,初步确定单引号存在注入。

问题1: 作者本来想通过手动拼接URL进行SQL注入,大家更容易理解SQL注入原理,但一直失败,最终使用SQLMAP实现吧!

2.Sqlmap实例

第一步,扫描所有数据库。

  • 参数:–dbs
  • 命令:python sqlmap.py -u “http://…/portfolio.php?id=1” --dbs

运行结果如下图所示,获取4个数据库,其中–dbs参数表示databases,目标数据库名称为“freelancer”。

可以使用获取当前数据库命令。

参数:–current-db

命令:python sqlmap.py -u “http://…/portfolio.php?id=1” --current-db

第二步,获取数据库所有表。

参数:-D freelancer --tables

命令:python sqlmap.py -u “http://…/portfolio.php?id=1” -D freelancer --tables

运行结果如下图所示,获取数据库freelancer的所有表,其中-D表示数据库,–tables表示所有表。其中管理员账号表为“safeadmin”。

第三步,获取数据库登录表所有字段。

参数:-D freelancer -T safeadmin --columns

命令:python sqlmap.py -u “http://…/portfolio.php?id=1” -D freelancer -T safeadmin --columns

运行结果如下图所示,获取数据库freelancer的登录表safeadmin所有字段,其中-D表示数据库,-T表示表,–columns表示usr表所有列。

第四步,获取数据库登录表用户名和密码。

参数:-D freelancer -T safeadmin -C “username,password” --dump

命令:python sqlmap.py -u “http://…/portfolio.php?id=1” -D freelancer -T safeadmin -C “username,password” --dump

获取数据库freelancer的登录表safeadmin所有字段,其中-D表示数据库,-T表示表,-C表示输出字段(usr_name、passwd),–dump输出所有值。

如果字段内容太多,可以设置输出个数,如10个用户名和密码。参数:-D ahykd_new -T usr -C “usr_name,passwd” --start 1 --stop 10 --dump。

此时,获取用户名和密码,如下所示。

+----------+--------------------------------------------------------------+| username | password                                                     |+----------+--------------------------------------------------------------+| safeadm  | $2y$10$s2ZCi/tHICnA97uf4MfbZuhmOZQXdCnrM9VM9LBMHPp68vAXNRf4K |+----------+--------------------------------------------------------------+

因为存在账号密码,那么它很有可能就存在相应的登录界面。那么,它的登录页面是多少呢?

第五步,这里可以尝试DirBuster或Dirsearch扫描登陆页面,它存在 /administrat/ 路径下,“/administrat/index.php”页面打开如下图所示。

问题2: 通常Sqlmap爆破管理员用户名和密码,进行MD5或Hash解密即可登录。但是这里仍然无法登陆,因为密码是经过复杂加密,而且爆破没有成功。

第六步,我们继续使用DirBuster爆破administrat目录。

扫描结果如下图所示,这里“panel.php”是可疑文件。

问题3: 但这里有存在一个难点,该php文件(/administrat/panel.php)是临时重定向文件(302),即每次打开它就会自动跳转到index.php主页,并且BurpSuite拦截也无法获取该文件源代码,怎么办呢?这可能也是您可能会遇到的问题。

第七步,这里使用了Sqlmap的一个高级用法。既然前面通过SQL注入已经成功获取了该网站的数据库,那么我们是否能把该php文件下载至本地呢?

  • 参数:–file-read=ar/wwwml/administrat/panel.php
  • 命令:
python sqlmap.py -u "http://...../portfolio.php?id=1" --file-read=var/www/html/administrat/panel.php

注意:目标服务器为linux,那么路径应该为/var/www/html/下。

成功获取文件内容如下图所示:

我们尝试打开本地文件:

panel.php源代码如下所示,看!它前面是一段重定向index.php文件,但后面内容中隐藏了flag,HTB{I love CSDN}。就这样完成了该题目。

简单总结:

该部分详细讲解了Sqlmap的基本用法,包括获取数据库、表、字段、用户名和密码,同时结合了DirBuster扫描文件及实战中Web渗透分析方法,最后分享了一个Sqlmap下载远程文件的高级用法,希望对您有所帮助!

关于SQL注入如何防护,这里也简单分享下:

在URL设置不允许非法字符,如单引号、等号、注释–、减号,提示非法参数;

在URL设置不允许SQL常见的关键词,如and、select、or、insert等;

传递的id=115参数必须为数字才能正常跳转,否则跳转错误;

服务器启用SQL注入拦截功能,提示当前网页的 URL / POST / COOKIES中包含了特定的 SQL字符而被防火墙拦截,因为可能通过POST、Cookies进行攻击,各方面都需要做到防御。

可以使用JS在客户端进行不安全字符屏蔽,也可以在jsp中调用该函数检查是否包函非法字符,或使用正则表达式过滤传入的参数,防止SQL从URL注入;

安全狗、防火墙、监控软件、黑白名单等措施。

三.总结

这篇基础性文章就此结束,希望文章对您有所帮助。非常感谢师弟他们的推荐,也觉得自己的技术好浅,要学的知识好多。如果您是安全初学者,一步一步学习,多实践多尝试,大牛都是慢慢练成的。

sqlmap md5怎么解密_三十九,hackthebox渗透之DirBuster扫描路径及Sqlmap相关推荐

  1. [网络安全自学篇] 三十九.hack the box渗透之DirBuster扫描路径及Sqlmap高级注入用法(三)

    这是作者的网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您们喜欢,一起进步.前文详细讲解了hack the box在线渗透平台注册过程,以及Web渗透三道入 ...

  2. 陈艾盐:《春燕》百集访谈节目第三十九集

    <春燕>访谈节目共120集,每月分10集播出,记录了上百位企业家对"慈善"的各种不同见解,通过讲述社会真善美的故事,让更多的人了解慈善.发扬慈善精神,构建更加美好,和谐 ...

  3. 小满Vue3第三十九章(Vue开发桌面程序Electron)

    建议视频教程小满Vue3(第三十九章 electron桌面程序)_哔哩哔哩_bilibili Electron官网Electron | Build cross-platform desktop app ...

  4. NeHe OpenGL第三十九课:物理模拟

    NeHe OpenGL第三十九课:物理模拟 物理模拟简介: 还记得高中的物理吧,直线运动,自由落体运动,弹簧.在这一课里,我们将创造这一切.   物理模拟介绍 如果你很熟悉物理规律,并且想实现它,这篇 ...

  5. Python编程基础:第三十九节 面向对象编程Object Oriented Programming

    第三十九节 面向对象编程Object Oriented Programming 前言 实践 前言 到目前为止我们都是函数式编程,也即将每一个功能块写为一个函数.其实还有一种更常用的编程方式被称为面向对 ...

  6. javaweb学习总结(三十九)——数据库连接池

    javaweb学习总结(三十九)--数据库连接池 一.应用程序直接获取数据库连接的缺点 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长.假设网站一天10 ...

  7. 三十九、Java集合中的HashSet和TreeSet

    @Author:Runsen @Date:2020/6/6 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排名 ...

  8. WPF,Silverlight与XAML读书笔记第三十九 - 可视化效果之3D图形

    原文:WPF,Silverlight与XAML读书笔记第三十九 - 可视化效果之3D图形 说明:本系列基本上是<WPF揭秘>的读书笔记.在结构安排与文章内容上参照<WPF揭秘> ...

  9. 【零基础学Java】—List集合(三十九)

    [零基础学Java]-List集合(三十九) java.util.list接口 extends Collection接口 list接口的特点: 1.有序的集合,存储元素和取出元素的顺序是一致的(存储1 ...

最新文章

  1. 浅谈用原生 JS 模仿个Promise 的实现
  2. mongo 3.4分片集群系列之六:详解配置数据库
  3. ACL 2021 | 为什么机器阅读理解模型会学习走捷径?
  4. red hat 6 安装php,Red hat linux服务器简明安装手册(OpenSSL+Mysql+Apache2+PHP)
  5. Photon——Setup and Config 设置与配置
  6. UCOS中断函数的编写
  7. python编写脚本方法_python 定时器,实现每天凌晨3点执行的方法
  8. Unity3D实践系列03,使用Visual Studio编写脚本与调试
  9. LeetCode 309: 一个很清晰的DP解题思路
  10. 常见的Hadoop十大应用误解
  11. 「镁客·请讲」Visense Studio冯樑杰:游戏基因的VR视频,最好的表现是真人实拍交互...
  12. 前端npm install失败
  13. QT最常用的字符串操作
  14. centos7 更新php版本,Centos7升级php版本到php7实例分享
  15. Linux安装yum工具-安装过程
  16. 禁用win10触摸屏手势_怎样禁用、启用Win10平板边缘滑动手势
  17. C盘空间不足,释放C盘空间
  18. IaaS开源软件之zstack(OSC中国开源项目的TOP30)
  19. 谈谈我对京东的认识(2):商业价值和前景分析
  20. 并行计算mpi实现矩阵转置,mpi分布式编程简介,点对点通信方法

热门文章

  1. 管家机器人先生txt_《管家机器人先生》(主角墨青如玉)大结局全文阅读
  2. 元宵节正月十五主题海报还没设计好,PSD分层模板来喽!
  3. 情人节海报模板,甜到牙疼!
  4. 值得借鉴的新年海报设计|PSD分层模板,图层素材随心用
  5. 适合海报设计的最佳字体
  6. UI设计实用临摹素材|APP设计的信息可视化!
  7. App引导页学习进阶临摹模板|UI界面设计步骤
  8. MATLAB 添加自有的工具包
  9. UNIX网络编程:unpv13e编译错误:net/if_dl.h:没有那个文件或目录
  10. OpenGL学习笔记:颜色(RGBA颜色,颜色索引模式)