明月清风精进不止 2020-05-07
服务端后台存在类似的代码
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(密码不用输了,因为后面的已经被注释)
?