WebGoat课程实训04:SQL注入(高级)——联合查询

这一课程演示了更加高级的SQL注入方式:联合查询. 

通过一个查询入口,我们不仅可以查询出当前表的信息,如果我们可以知道(或猜到)其他的表,我们是可以查出更多信息的。

示例中告诉了我们另一个系统用户表,因此我们在查Account Info的同时查询user_system_data表就行了。

解法一: Union查询

注意union查询:查询列数相同;查询类型要兼容。因此我们必须先找出原表的列数。

步骤1:先查询出原表的格式:’ or ‘1’ =‘1

现在我们知道了这个表格一共有7列。第二个表只有4列,后面的列我们就自己构造了

步骤2: xx' union select userid,user_name,password, 'a','b','c',7 from user_system_data --

这样,我们就得到dave的密码了。

第2步中在构造后面的四列时,要求保证查询出来的类型一致,因为第一个表格的前面列是字符,最后一列是数字,所以才有前三个是字符,最后一个是数字。

同时,由于原输入框输入的字符,因此在构造的sql语句后面必然会有一个单引号,这里使用了特殊字符:注释符 (--)将语句后面的内容注释掉,排除干扰。

解法二:多语句查询

该问题还可以使用多语句查询的解法,即使用分号,分别查询两个语句即可

答案:xx'; select * from user_system_data --

这里也仍然需要注释符。

(--完--)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

架构师Wu老七

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值