Новиков (Practical fuzzing for modern web and APIs)
Новиков (Practical fuzzing for modern web and APIs)
since 2009
20+ application
security researches
What is an
application?
Application is
not a
software
What the application is?
Business
security
coding release
testing
Information
security
WHERE and WHAT
Units/regressions/functional coverage
Custom encodings/encryption
Fuzzing
payloads
Vuln.
scanners
payloads
How to fuzz?
http://pdev.org.uk/#browse?q=;f=A
Example 1. 1-byte fuzzer
?ref=http://aaa/%00aaaaaaaaaaaaaaaaaaaaa
https://bugfuzz.com/vulns/nginx-mem.txt
Example 2. 1-byte fuzzer
{"method":"test%26method%3ddeleteUser"}
727 call('/api/?method='+$data)
GET /api/?method=test&method=deleteUser
HOST internal.api.host
Example 3. 1-byte fuzzer
<Image><![CDATA[http://test.com\n
rm -rf / ;]]></Image>
https://research.facebook.com/search?q=a%20
HTTP 200
https://research.facebook.com/search?q=a%22
HTTP 500
GET / HTTP/1.1
COOKIE: sessionid=a8cf5d724a7f56e490cab37%0a
%0aset+key+0+1+3600+10%0a1234567890%0a
https://www.blackhat.com/docs/us-14/materials/us-14-Novi
kov-The-New-Page-Of-Injections-Book-Memcached-Injectio
ns-WP.pdf
Example 6. List-based fuzzer
Example 7. List-based fuzzer
Host: api.test.com
HTTP non-CRUD methods, CRUD
aliases and WebDAVish things
● SET
● REMOVE (instead of DELETE, I don’t know why)
● DEBUG
● TRACK
● FORWARD
● MOVE
● INFO
https://github.com/wallarm/fast-detects/blob/master/spring-
cloud-infoleaks.yaml also related to Jolokia by Artsploit
(Veracode) CVE-2019-xxx
HOST: api.somethings.com
{"token":true, ...}
Example 10. Type casting
Content-Type: application/json
Content-Type: application/xml
H4ckers points of view on API
requests
● No 5xx errors
● No 1+ms response
Tools for fuzzing
Universal tools
Custom tools
Own tools
Unit
Fuzzing for the continuous
tests security
Collect all the requests by unit/manual tests
Proxy Fuzzy
Apply all the fuzzing policies
requests generated
collector tests
Generating x10’000 new unit tests by fuzzing
@d0znpp Fb/Tg/Twi/Medium
https://blog.wallarm.com
[email protected]