【问题标题】:SQL injection MariaDB python CTFSQL注入 MariaDB python CTF
【发布时间】: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


【解决方案1】:

至少要避免反斜杠、撇号和双引号。比如转身

admin' union select 1;--

进入

admin\' union select 1;--

会阻止 这种 SQL 注入的情况。

【讨论】:

  • 感谢您的回答。经过几个小时的研究,我只使用了 sqlmap...
猜你喜欢
  • 2019-07-15
  • 2021-05-05
  • 2016-10-19
  • 1970-01-01
  • 2022-11-05
  • 1970-01-01
  • 2015-06-15
  • 1970-01-01
  • 2021-03-06
相关资源
最近更新 更多