首页
关于
友链
友链申请
Search
1
小程序Appid、AppSecret泄露漏洞总结
127 阅读
2
从未授权访问到随意进出后台
89 阅读
3
无视锁屏状态安卓手机远程控制安卓手机实现远程打卡2
85 阅读
4
技术岗为什么要写博客
62 阅读
5
PDF XSS攻击总结
49 阅读
学习笔记
渗透实纪
经验总结
基础教学
工具推荐
插件
工具
想法杂谈
闲言碎语
灵光乍现
乱七八糟
生活小记
我的爱好
登录
找到
14
篇与
渗透实纪
相关的结果
- 第 2 页
2024-08-14
另类打法思路
突破 站点首页 首先得知目标站点存在sql注入漏洞 找目标 打进数据库就是为了账户和密码,一开始我查看一下相关的库,但都不是我想要的。实在是不想一个一个翻直接一键dump。 把最终的扫描结果全部复制另存到一个txt中,手动搜索。 然后在yx_person表中找到了所有账户和密码。 下面是整理好后部分数据的样子。其中md5值:2e3216787eaf07e818cb27135352e8b8解密后是:666666,有了手机号和密码那就直接登录吧。 网页不允许登录,看来对地域有限制。尝试修改请求包中的ip和响应包内容,发包后还是会提示这个。去产品官网瞅瞅,说不定有意外收获啥的。 峰回路转 果然,提供app的登录方式,果断下载软件和模拟器。 环境一切安排妥当后直接成功登录的目标账号。但是这个账号权限太低了,没法玩。 爆装备 重新查看sqlmap返回的信息,意外发现有两个表爆装备。 第一个:yx_sys_verifycode,第二个:yx_sms_sendrecords。 这两个表用来记录短信内容,例如验证码登录、重置密码。第二个表中记录的更加详细,短信中的每个字都记录的一清二楚,不光包含验证码信息,还包含了修改后的密码信息。我直接在这里表里面找权限高的账户。 通过和yx_person表中的职位匹配还真找到一个管理员账户密码。 但只是一个二级管理员,没啥玩头。 奇思妙想 重新回看yx_sms_sendrecords表,他记录的信息中还包含短信验证码的发送时间,那我是不是可以重置最高管理员的密码,然后从数据库里查看发送的短信验证码,这样就可以通过身份验证从而重置密码了,逝一下。 输入管理员手机号、图形验证,最后获取验证码。页面提示验证码已发送,但是读取yx_sms_sendrecords表后发现并没有短信记录,看来这张表只记录成功被使用的验证码和修改密码后的短信提示。
渗透实纪
xioy
1年前
0
32
0
2024-08-13
利用file协议干掉七十六个站
两眼一黑 站点首页 这个站点因为后端出了问题,导致站点废了。任何功能都无法使用,想注册账号都不行。转换思路,打旁站。 眼前一亮 ping域名获取到目标ip,获取到ip直接探测他开启了哪些端口。 爽啦!开这么多端口,不打你,打谁? 挨个打开,有没有任何服务的,有经过测试没有弱口令的……其中一个服务引起了我的注意。 反射型XSS 访问后没有任何上传的地方,那只能测试kkFileView其他历史漏洞了。 经过测试存在XSS和任意文件读取漏洞 利用file协议大杀四方 好玩的就来了,这个洞是使用的是file协议,那就可以列举目录啊,直接列举根服务器目录。 按照经验,用户都喜欢把文件放在home、www、wwwroot、var文件夹下,逐个查看。 逐个查看后发现用户把所有的文件都放在了/www/wwwroot文件下,并且文件夹名写的都非常明确,直接亮出了域名。 直接挨个进目标文件夹找配置文件,最终76个站点文件夹翻出来了34个备份文件、3个系统管理员账户、4个存储桶、5个数据库,收获满满啊。
渗透实纪
xioy
1年前
0
18
0
2024-07-07
商城主动给我0元购资格
常规测试 首页 这是一个购物的小程序,那我们就冲着0元购目的打。 首先看到数据包中有商城的地址,那就试试看后台有没有弱口令吧。 字典都跑完了没有爆破出弱口令账户。还是测试功能点吧。 并发 挨个测试那就先测试签到功能吧,目前是0积分。 把bp的拦截功能打开,拦截签到的数据包,然后转发到intruder模块。把payloads设置为Null payloads,并选择无限循环。 再新建一个并发999的资源池,发包。 成功了两个请求,获得了10积分。 0元购 接下来测试余额功能,点进去后有一个充值按钮。 点击后是充值界面,那就充个0.01吧。点击立即充值按钮后,会产生两个数据包。第一个数据包是充值的申请,第二个数据包每隔5秒检测该请求是否已支付状态。如果关闭了付款二维码则会返回第三个支付失败的数据包。 其中在第一个数据包中包含了支付金额、用户id和用户token。 既然显示了金额,那我能不能填写0.01然后扫码支付0.01后拦截他的数据包把0.01改成想要的数字呢?我看刑试一试。扫码支付0.01后拦截他的数据包人就傻了,数据包被加密了,改不了。 再回头看数据包这个planId是干嘛用的?不甘心再试试,再充个0.01点击立即充值然后拦截该数据包把planId=0修改成planId=1看看是什么效果。 放包后扫描二维码成功支付0.01,再返回钱包你猜怎么着,多了10元。 看看充值记录是什么情况。用0.01充10.01足足1001倍啊,爆率真的高。那我要是把planId=0修改成planId=2又是什么样的效果呢。 填写0.01点击立即充值,拦截数据包把planId=0修改成planId=2然后放包扫码支付后,回到钱包还是用0.01充10.01 多次尝试后发现当planId改为4时则会返回充值套餐不存在的提示。 到这里我就明白了,当planId=0时是正常的充值,而1、2、3则有可能是小程序在开发时用来测试用的,小程序上线后这个测试的充值套餐没有被删除。(题外话:这种功能常用于在搞活动的时候用到,比如充值500送200这样的活动。) 好多优惠券 ok接下来该轮到测试优惠劵了,点击领券中心,只有一个满1元减0.01的券。 点击领取后,查看一下数据包好玩的就来了。数据包中包含优惠券的id、用户id和用户token 盲猜和充值一个逻辑,直接把数据包转发到intruder模块。把coupon_id参数设置为变量,payloads设置为数值,数字范围从0到100 一共成功领取了12张优惠券 水平越权 最后再测试一下个人信息界面吧。头像处经过尝试发现限制非常死,恶意文件上传不上去。上传正常图片后点击保存按钮,在数据包中就发现好玩的了。数据包中有图片的id。 数据包转发到repeater模块尝试把图片id改成1试试。 发现我的头像变了。 再改成2试试。
渗透实纪
xioy
1年前
0
5
0
2024-06-24
前端登陆绕过渗透过程
梭哈 站点首页 看到登录框首先测试一下有没有sql注入,一个1'啪就打进去,提示用户名错误,寄。 既然提示用户名错误了那就爆破用户名吧。用户名和密码随便输,抓一个数据包。 点击登录后bp竟然没有任何数据包,立马来精神了。 bp没有数据包有两种情况:一个是bp出故障了、另一个就是站点靠前端校验没有与后端交互,所以没有数据包产生。我可以肯定我的bp不可能出问题的,所以哈哈哈哈哈哈。 梭哈是一种智慧 直接F12大法全局搜索admin字样。喜滋滋账户和密码这不就来了嘛,后台我来了哈哈哈。 屮,好家伙用户名对了密码不对是吧。 现在bp里有数据包了,看一下数据包里的内容。看到result字样相信在座的各位大佬都坐不住了吧。 重新拦截登录的数据包,直接把"result":"false"改成"result":"true"成功登录到后台。 完整代码 ok现在让我看看他具体的代码是怎么判断,让我看看你是怎么秀的。先看看完整代码: IndexComponent.prototype.goLogin = function() { var t = this; if ("" == this.userName || "" == this.passWord) return void (this.toast = "用户名或密码不能为空!"); if ("adminxhsty" != this.userName) return void (this.toast = "用户名错误!"); var n = { code: this.userName, username: encode(this.userName, "thinkgem,jeesite,com"), password: encode(this.passWord, "thinkgem,jeesite,com") }; $(".loading").show(), this.indexService.goLogin(n).then(function(n) { $(".loading").hide(), "true" == n.result ? (t.isLogin = !1, t.onVoted_changelogin.emit(!t.isLogin), sessionStorage.setItem("sessionid", n.sessionid)) : t.toast = n.message }) }分析逻辑 首先定义了一个goLogin方法,var t = this;将当前对象保存在变量t中,这样在后面的异步回调中可以访问该对象的属性和方法。 IndexComponent.prototype.goLogin = function() { var t = this;这段代码首先检查用户名和密码是否为空。如果是空的,则返回:用户名或密码不能为空!。如果用户名不是"adminxhsty",则返回:用户名错误!。 if ("" == this.userName || "" == this.passWord) return void (this.toast = "用户名或密码不能为空!"); if ("adminxhsty" != this.userName) return void (this.toast = "用户名错误!");如果通过了验证,接下来准备一个包含登录信息的对象n: code:使用输入的用户名。 username和password:通过encode函数编码输入的用户名和密码,使用了特定的加密参数"thinkgem,jeesite,com"。 var n = { code: this.userName, username: encode(this.userName, "thinkgem,jeesite,com"), password: encode(this.passWord, "thinkgem,jeesite,com") };接下来,显示页面中的加载动画。然后调用this.indexService.goLogin(n)方法,传递准备好的登录信息n,这个方法返回一个Promise对象。当登录请求完成时,执行接下来的动作:根据返回的数据n中的result字段判断登录是否成功。如果n.result是字符串"true",则表示登录成功。如果n.result是字符串"false",则显示相应的错误消息。 $(".loading").show(), this.indexService.goLogin(n).then(function(n) { $(".loading").hide(), "true" == n.result ? (t.isLogin = !1, t.onVoted_changelogin.emit(!t.isLogin), sessionStorage.setItem("sessionid", n.sessionid)) : t.toast = n.message })
渗透实纪
xioy
1年前
0
12
1
2024-06-07
非预期文件上传TXT导致存储型XSS奇葩案例
常规测试 站点首页。 有注册功能,那就注册成为尊贵的用户吧。 进入个人中心发现用户的头像处可以上传文件。 分析数据包 先上传一个正常图片看看数据包。 发现上传头像后站点会有两步操作:第一步对上传的文件进行检验是否为合规文件,第二步对图片进行裁剪,最后把裁剪后的图片设置为头像。 在设置头像的数据包中发现图片信息的上半段为二次渲染的标记,下半段为图片信息。 知道了逻辑那就直接在第二步中修改文件信息吧。 尝试 通过插件知道这是一个php的站。 上传一个纯代码文件,在第一步中就失败并返回只能上传jpg、jpeg和png格式的文件的提示,难道是对文件头有限制? 上传一个正常的图片。通过第一步的检验后,进入第二步裁剪完成后拦截上传头像的数据包,转发到repeater模块把图片名字cropper.jpg改为cropper.php,在图片信息末尾加上恶意代码然后放包。 返回的还是只能上传jpg、jpeg和png格式的文件。 迷糊 把文件信息改成123456看看效果什么样。 能显示啊这是为什么? 把文件末尾信息改成 123456<?php @eval($_POST['1']);?>123456访问后只保留了两个123456,中间的代码被删除了。头回遇到这种情况啊。 TXT存储型XSS 虽然php没法利用了,但是至少还有html。可以弄一个存储XSS保底也还行,传上去访问文件竟然不显示。 G,啥都没有。闲的无聊把文件后缀改成txt重新发包。 访问目标文件,属实给我开眼了。非预期文件上传TXT导致存储型XSS!闻所未闻,想都不敢想的事啊!
渗透实纪
xioy
1年前
0
14
0
上一页
1
2
3
下一页