teslariu

SQL injection

May 23rd, 2023
1,298
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.15 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. #
  4. # ejemplo de SQL injection
  5. import sqlite3
  6.  
  7. # Creo una conexión con una base de datos: Si la base no existe, la crea
  8. conn = sqlite3.connect("prueba.sqlite")
  9.  
  10. # Necesito un cursor para hacer las consultas SQL
  11. cursor = conn.cursor()
  12.  
  13. # Vamos a agregar datos como tuplas
  14. nombre = input("Ingrese un nombre: ")
  15. edad = int(input("Ingrese una edad: "))
  16.  
  17. # Correcto
  18. # cursor.execute("INSERT into personas VALUES(?,?)",(nombre,edad))
  19.  
  20. # Peligroso, da warning (Si estan dehabilitados se me borra la tabla
  21. # cursor.execute(f"INSERT into personas VALUES('{nombre}',{edad})")
  22.  
  23. # Puedo evitar el warning; esto borrará la tabla personas
  24. cursor.executescript(f"INSERT into personas VALUES('{nombre}',{edad})")
  25. conn.commit()
  26.  
  27. # leemos la tabla personas e imprimimos los datos
  28. cursor.execute("SELECT * FROM personas")
  29. personas = cursor.fetchall()  # fetchone() devuelve un solo registro
  30. print(personas)
  31.  
  32. # cierro la base de datos
  33. conn.close()
  34.  
  35. # Intento de SQL Injection
  36. # nombre = Ale',25); DELETE FROM personas; --
  37. # edad = 36
  38.  
  39. # INSERT into personas VALUES('Ale',25); DELETE FROM personas; --',36)")
  40.  
  41.  
  42.  
Advertisement
Add Comment
Please, Sign In to add comment