Sql union select语句如何输出易受攻击的列
考虑一个SQL易受攻击的站点 让查询中的列数为3 下面的语句是:www.test.com?php.id=-1'union select 1,2,3-+- 我对这句话的理解是这样的 有两种说法 Union用于联接这两个语句。 -用于使第一条语句的值为空。 '用于中断查询并输入第二条语句,-+-用于注释掉语句的其余部分。 输入此语句后,网站将2和3显示为易受攻击的列Sql union select语句如何输出易受攻击的列,sql,sql-injection,Sql,Sql Injection,考虑一个SQL易受攻击的站点 让查询中的列数为3 下面的语句是:www.test.com?php.id=-1'union select 1,2,3-+- 我对这句话的理解是这样的 有两种说法 Union用于联接这两个语句。 -用于使第一条语句的值为空。 '用于中断查询并输入第二条语句,-+-用于注释掉语句的其余部分。 输入此语句后,网站将2和3显示为易受攻击的列 我不明白的是select语句如何显示易受攻击的列。假设您的后端代码执行了如下操作: sql = "SELECT UserId, Use
我不明白的是select语句如何显示易受攻击的列。假设您的后端代码执行了如下操作:
sql = "SELECT UserId, UserName, Password from Users where UserID = " + id + " AND password = '" + password + "'"
因此,只有当用户ID和密码匹配时,它才会返回结果
然后注入上面的代码将导致
SELECT UserId, UserName, Password from Users
where UserID = -1 union select 1,2,3 --+- AND password = 'anything'
用户界面可能会在用户名和密码字段中显示1和2,将其标识为易受攻击
这是一种用于确定如何在后端代码中构建SQL语句的技术,以便定义真正的SQL注入攻击来检索敏感数据