This document discusses unique ways to hack into Python web services. It begins with an introduction to web services and common vulnerabilities like SQL injection and cross-site scripting. It then explores specific vulnerabilities like JSON web token manipulation, insecure deserialization, and insecure direct object references. For each vulnerability, it provides examples of attacks and recommendations for mitigation techniques. It concludes with tips for integrating security testing into the development process to help prevent threats.
1 of 38
Download to read offline
More Related Content
Unique way-to-hack-into-a-python-web-service
1. Unique ways to Hack into a
Python Web Service
Copyright - we45, 2018
2. Copyright - we45, 2018
About
Senior Solutions Engineer at
we45
Developer of Open-Source
Project called Orchestron,
ThreatPlaybook
Part of multiple CTF
@ti1akt
https://github.com/we45/orchestron-community
https://github.com/we45/ThreatPlaybook
3. Agenda
Intro to Web-Services
Common
Vulnerabilities
Unique Vulnerabilities
Some of Remediation
Techniques
Demo !
Copyright - we45, 2018
4. What is Web-Service?
It designed to support interoperable machine to
machine over the internet
It is not tied to any one operating system or
programming language
Copyright - we45, 2018
11. Copyright - we45, 2018
Why JWT
Stateless Application
Authorization Mechanism
Transfers information
between server and client
Scalable and decoupled
12. Copyright - we45, 2018
JSON Web Token(JWT)
The process is relatively simple
(typically):
Once a user authenticates, the server
generates some JSON payload (with
some info) and signs the JSON
payload with a key
This can be a HMAC Based Key
(HS256) or a Asymmetric System
(RS256)
The token is sent by the client (like a
session cookie)
The server attempts to verify the token
based on the signature and
13. Lots of ways to get JWT wrong
JWT allows for a none signature
for a token
Algo Confusion Attacks:
CVE-2017-11424
CVE-2015-9235
JWT verification on non-unique
private claims
16. Mitigation
Validate using Unique ID
Ensure that JWT implementation doesnt support None
signature
JWT lifetime relatively short
Check library flaw
Copyright - we45, 2018
28. Mitigations
Integrate integrity check such as digital signature
Isolate then deserialise the data
Monitor incoming and outgoing network connectivity
Instead of yaml.load use yaml.safe_load
Copyright - we45, 2018
30. Insecure Direct Object reference
id,pid,uid are often seen in HTTP parameter
Accessing other user privilege
Backend not properly validated users
Copyright - we45, 2018
34. Mitigation
Validate user using requested query
Check database is that user is genuine or not
Custom validation in server side as well as client side
JWT should be invalidated once the user is logout
Copyright - we45, 2018
36. Copyright - we45, 2018
To Prevent some of threats
Run SCA,
https://github.com/pyupio/safet
y
Run SAST
https://github.com/PyCQA/ban
dit
Run DAST
https://www.owasp.org/index.p
hp/OWASP_Zed_Attack_Prox
y_Project
Include security testing in DevOps
pipeline
38. Copyright - we45, 2018
Download Examples and 際際滷s
You can download it from
http://github.com/we45/djang
ocon-2018
@ti1akt
Thank you
https://github.com/we45/orchestron-community
https://github.com/we45/ThreatPlaybook