pikachu漏洞练习平台实战

一、暴力破解

从来没有哪个时代的黑客像今天一样热衷于猜解密码 ---奥斯特洛夫斯基

Burte Force(暴力破解)概述

“暴力破解”是一攻击具手段,在web攻击中,一般会使用这种手段对应用系统的认证信息进行获取。 其过程就是使用大量的认证信息在认证接口进行尝试登录,直到得到正确的结果。 为了提高效率,暴力破解一般会使用带有字典的工具来进行自动化操作。

理论上来说,大多数系统都是可以被暴力破解的,只要攻击者有足够强大的计算能力和时间,所以断定一个系统是否存在暴力破解漏洞,其条件也不是绝对的。 我们说一个web应用系统存在暴力破解漏洞,一般是指该web应用系统没有采用或者采用了比较弱的认证安全策略,导致其被暴力破解的“可能性”变的比较高。 这里的认证安全策略, 包括:

1.是否要求用户设置复杂的密码;
2.是否每次认证都使用安全的验证码(想想你买火车票时输的验证码~)或者手机otp;
3.是否对尝试登录的行为进行判断和限制(如:连续5次错误登录,进行账号锁定或IP地址锁定等);
4.是否采用了双因素认证;
...等等。
千万不要小看暴力破解漏洞,往往这种简单粗暴的攻击方式带来的效果是超出预期的!

1.基于表单的暴力破解

无验证,直接爆破即可:

由于有账号密码两部分,所以用集束炸弹。

2.on client验证码绕过

在前端验证的验证码是没有用的,前段验证后后端就不管了,那么我们就可以进入后端只用爆破账号密码,之后和表单爆破一样

3.on server的验证码绕过

server端即后端,但是后端验证只是验证一遍,正确即可一直使用(不刷新页面下)。

但是验证码要保留,不能像在前端验证一样删除验证码。

4.taken防爆破

token的作用:**简单来说就是服务器给前端发的身份证,前端向服务器发送请求时都要带上这个身份证,服务器通过这个身份证来判断是否是合法请求

抓包发送给暴力破解模块,攻击类型选择pitchfork(音叉),需爆破的内容为密码和token

二、Sql Inject(SQL注入)

哦,SQL注入漏洞,可怕的漏洞。
     在owasp发布的top10排行榜里,注入漏洞一直是危害排名第一的漏洞,其中注入漏洞里面首当其冲的就是数据库注入漏洞。
一个严重的SQL注入漏洞,可能会直接导致一家公司破产!
SQL注入漏洞主要形成的原因是在数据交互中,前端的数据传入到后台处理时,没有做严格的判断,导致其传入的“数据”拼接到SQL语句中后,被当作SQL语句的一部分执行。 从而导致数据库受损(被脱裤、被删除、甚至整个服务器权限沦陷)。

在构建代码时,一般会从如下几个方面的策略来防止SQL注入漏洞:
1.对传进SQL语句里面的变量进行过滤,不允许危险字符传入;
2.使用参数化(Parameterized Query 或 Parameterized Statement);
3.还有就是,目前有很多ORM框架会自动使用参数化解决注入问题,但其也提供了"拼接"的方式,所以使用时需要慎重!

1.数字型注入(post)

随意点击一个数字,点击查询,会出现如下结果

  • url中没有传参,提交方式为post。
  • 点击数字1,进行查询,并使用bp抓包

2.字符型注入(get)
  • 构造闭合,输入admin’ or 1=1#(注意上分号为英文的),前面是用户+'+or+1,使指令始终为1,打印出全部数据库

3.搜索型注入

输入a,可查询出用户名中含有a的结果

代码为select from 表名 where username like '%k%';

payload:%k%' or 1=1 #%';

所以我们运用此来构造闭合:输入a' or 1 #,即select from 表名 where username like '%k%' or 1=1 #%';

即可找出全部数据:

4.xx型注入

查看后端源码,可以看到:

  • 想办法构造闭合

源代码:select id,email from member where username=('$name');
payload:payload:   xx') or 1=1#

注入后代码:select id,email from member where username=('xx') or 1=1#');

5."insert/update"注入,

这里我们运用下kali里的sqlmap工具来进行直接暴力注入:

将抓到的包复制到kali的一个txt文件中:

进行暴力注入:

得到的数据库:

三、Unsafe file upload(不安全的文件上传):
文件上传功能在web应用系统很常见,比如很多网站注册的时候需要上传头像、上传附件等等。当用户点击上传按钮后,后台会对上传的文件进行判断 比如是否是指定的类型、后缀名、大小等等,然后将其按照设计的格式进行重命名后存储在指定的目录。 如果说后台对上传的文件没有进行任何的安全判断或者判断条件不够严谨,则攻击者可能会上传一些恶意的文件,比如一句话木马,从而导致后台服务器被webshell。

文件上传漏洞测试流程
1、上传文件,查看返回结果(路径,提示等)
2、尝试上传不同类型的“恶意”文件,比如xx.php文件,分析结果
3、查看html源码,看是否通过js在前端做了上传限制,想办法绕过
4、尝试使用不同方式进行绕过:黑白名单绕过/MIME类型绕过/目录0x00截断绕过等
5、猜测或者结合其他漏洞(比如敏感信息泄露等)得到木马路径,连接测试

1.client check
方法一:
  • 我们发现只能上传图片,上传其他文件会显示上传的文件不符合要求,请重新选择。
  • 我们按下F12并打开后台源码查看
  • 发现前端对文件进行了限制,我们可以直接使用发者工具把前端的onchang函数删掉。
  • 这样就可以进行文件随便上传了

方法二:

直接将文件后缀改为jpg即可上传:

.

但是我们一般要php文件进行一句话木马,所以我们可以在上传后抓包进行修改后缀为php:

方法三:

认识:javascriptenabled是一个布尔值,用于指示浏览器是否启用JavaScript。当javascriptenabled被设置为false时,浏览器将禁用所有
JavaScript代码,包括内嵌的和外部的脚本。这意味着网站上的所有交互和动态效果都将无法正常工作。
在一些情况下,禁用JavaScripti可能会增强浏览器的安全性,因为一些恶意代码和攻击者可能会利用JavaScript的漏洞来攻击用户。然而,
对于绝大多数网站和应用程序而言,启用JavaScript是必要的,因为它可以使网站更加交互式,提供更好的用户体验。

打开火狐浏览器,网址搜索框输入about:config, 将JavaScript.enabled设置为false

即可上传:后续也应为jpg文件用bp抓包进行修改后缀为php

2.MIME type

MIME即文件类型检测
MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的因特网标准。
MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。

如下代码所示为此关卡用于MIME验证的php源码, 由此可知MIME是通过判断你的文件类型(而不是后缀名)来决定是否允许你上传文件,只需抓包修改content_type值就能绕过验证
if(isset($_POST['submit'])){
//     var_dump($_FILES);
    $mime=array('image/jpg','image/jpeg','image/png');//指定MIME类型,这里只是对MIME类型做了判断。
    $save_path='uploads';//指定在当前目录建立一个目录
    $upload=upload_sick('uploadfile',$mime,$save_path);//调用函数
    if($upload['return']){
        $html.="<p class='notice'>文件上传成功</p><p class='notice'>文件保存的路径为:{$upload['new_path']}</p>";
    }else{
        $html.="<p class=notice>{$upload['error']}</p>";
    }
}
 

虽然但是,我改为jpg文件直接上传也可以得到结果,应该是改后缀ipg,文件类型也改了,可见下图文件类型(content_type)为 image/jpeg

3.getimagesize()

getimagesize()函数会通过读取文件头部的几个字符串(即文件头), 来判断是否为正常图片的头部

可通过制作图片木马或再木马文件内容头部添加GIF89a(Gif图片文件头), 然后利用文件包含漏洞来解析图片木马

利用步骤

在图片木马的文件内容头部添加GIF89a, (注意要在记事本上先保存在退出)保存为.jpg文件, 随后将此文件上传后会返回文件的相对地址uploads/.2023/12/29/934195658e36f047348739816742.jpg

由此可知木马图片的url地址为http://127.0.0.1/pikachu/vul/unsafeupload/uploads/.2023/12/29/934195658e36f047348739816742.jpg

得到这个我们后续就可以使用蚁剑进行连接从而进行远程控制。

  • 20
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值