[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注入;
安全狗、防火墙、监控软件、黑白名单等方法。
三.总结这篇根本性文章就此结束,希望文章对您有所帮助。非常感谢师弟他们的推举,也以为自己的技能好浅,要学的知识好多。如果您是安全初学者,一步一步学习,多实践多考试测验,大牛都是逐步练成的。