【发布时间】:2018-11-27 01:13:43
【问题描述】:
我正在尝试获得对应用 (ctf) 的管理员访问权限。注入发生在用户名输入的登录表单中。我可以绕过用户但不能绕过密码(起初用户名无效。注入后,我得到无效密码)。我在理解相关的python代码时遇到了一些麻烦,尤其是.replace('%', '%%'))。
部分错误信息:
if cursor.execute('SELECT password FROM users WHERE name=\'%s\'' % request.form['name'].replace('%', '%%')) == 0:
我的有效载荷是:admin' union select 1;--
你有什么线索吗?
【问题讨论】:
-
不要使用
%s,使用?和合适的语法。 -
@RickJames 实际上我无法修改它。
if cur.execute('SELECT password FROM users WHERE name=\'%s\'' % request.form['name'].replace('%', '%%')) == 0:在错误消息中,或者如果您更喜欢后台请求而不是数据库。注入发生在登录表单的用户名字段中。抱歉,我还不够清楚。 -
这是用于测试还是未经授权的访问?
标签: python mariadb sql-injection