南邮CTF-SQL注入1

题目

点那个source

要用post传递参数‘user’和‘pass’,满足条件输出flag

根据form信息可知传递参数的方式是post,只需要在输入框输入参数提交即为post传参(不用使用postman)

有一条sql语句

$sql="select user from ctf where (user='".$user."') and (pw='".$pass."')";

开始有点不理解,不过动手测试了一下就明白了

1为原式,2为在原式基础上去掉单引号、双引号、拼接运算符(.),3为在原式基础上去掉拼接运算符(.)

运行结果分别为

好好意会意会。。。

由题意,user要为‘admin’,但pw不知道,不过可以跳过密码

在输入框输入

admin')#

密码随意

就相当于

select user from ctf where (user='admin')# and (pw='随意密码')

注:

1.sql中,#后面是注释语句,因此不会被执行,就绕过了后面检测密码的语句

2.要加一个‘)’,因为要与前面的‘(’匹配