我正在尝试让管理员访问应用程序(ctf)。注入以用户名输入中的登录形式进行。我可以绕过用户,但不能绕过密码(首先是无效的用户名。注入后,我将获得无效的密码)。我在理解相关的python代码时遇到了一些麻烦,尤其是.replace('%', '%%'))
。
部分错误消息:
if cursor.execute('SELECT password FROM users WHERE name=\'%s\'' % request.form['name'].replace('%', '%%')) == 0:
我的有效载荷是:admin' union select 1;--
你有什么线索吗?
答案 0 :(得分:0)
至少转义反斜杠,撇号和双引号。例如,转动
admin' union select 1;--
进入
admin\' union select 1;--
本来可以阻止这种 SQL注入的情况。