1' union select * from [ADM] union select * from [ADM] where '1'='1

什么意思 解释下
网友 1

最佳答案

回答者:网友
union就是联合的意思。把两标拼接起来。

当两表的结构或者所选择的字段相同时候才可以使用Union方法。否则会出错。
-----------------
那也要人家用了字符串拼接的SQL语句你这台才能用。用PROC注入不了的。
#######
打个比方
原始的SQL是
SELECT * FROM [ADM] WHERE USERID='ADMIN' AND PASSWORD = 'PASS'

你现在在ADMIN或者PASS的地方插入你的那个语句 也就变成了
SELECT * FROM [ADM] WHERE USERID='ADMIN' AND PASSWORD = '1' union select * from [ADM] union select * from [ADM] where '1'='1'

前面那个SELECT * FROM [ADM] WHERE USERID='ADMIN' AND PASSWORD = '1' 肯定什么数据都不会出来的。
但是下面还有一句UNION
select * from [ADM] union select * from [ADM] where '1'='1'

而最后的1=1这个条件就是真,所以会把[ADM] 所有的数据都给抽出来。

我来回答