Insert注入实例简单分析

栏目: Json · 发布时间: 7年前

内容简介:Insert注入实例简单分析

注入分析

在工作时遇到一个注入,insert型的报错注入,比较典型,记录一下利用的思路。

URL参数部分如下: userId=724'&idCode=&phoneNum=138&cb=jsonp

可见基本上由三个参数构成,在 userID 和 phoneNum 参数后加单引号会直接报错,报错信息如下:

Insert注入实例简单分析
userId参数后加单引号
Insert注入实例简单分析
phoneNum参数后加单引号

不过仅有上面两条报错信息分析不出来什么,还要继续试,单引号后再加参数fuzz一会,再加上此处的业务逻辑是发验证码,猜测此处有可能是Insert注入,再结合一个很关键的报错信息如下:

fuzz 参数phoneNum为 138','

Insert注入实例简单分析

这个报错信息很明显了,加了个逗号,告诉我参数数量是4,而应该是3,基本上可以确定为这里的 SQL 存储过程执行的是插入语句,且插入语句的大体结构可能如下:

insert into table values('userid', 'phoneNum', '')

结合报错信息来看,涉及到参数的语句在小括号外面还有一对单引号,故我们得出的此处参数如下: '('userId', 'phoneNum', '')'

这个结构可以解释之前所有的报错,所以基于这个结构构造注入语句试一试。

自然的构造如下的语句:

'('userId' or updatexml() or '','phoneNum', '')'

这样就可以执行updatexml()语句执行报错,故所需Payload只是把userId参数改掉,改成如上的格式就可以。还有一点坑的地方就是这个地方过滤了 等号空格 ,所以采取一些过滤方式,比如/**/,%09,like等,就可以绕过过滤执行语句了。

注入过程

  • 爆表的数量

    userId=724'/**/or/**/updatexml(1,concat(0x7e,concat(0x7e,(select/**/count(*)/**/from/**/information_schema.tables/**/where/**/table_schema/**/like/**/'spzh'/**/limit/**/0,1),0x7e),0x7e),0)/**/or'&idCode=&phoneNum=138&cb=jsonp
  • 爆表名

    select table_name from information_schema.tables where table_schema='库名'

  • 爆列名

    select column_name from information_schema.columns where table_name='表名'

    后面爆数据不再赘述。可以写个简单的脚本,很快就能爆出想要的数据了。

简单总结

主要是对于sql语句的猜测,此处结合了业务和报错做的一些分析,第一次遇到这个场景,没有猜到是insert注入之前很纳闷这个语句是什么情况,想到是insert注入之后很多奇怪报错现象就迎刃而解了。所以在注入过程中还是要多联系业务场景,遇到问题采用排除法仔细排查。


以上所述就是小编给大家介绍的《Insert注入实例简单分析》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

爆款:如何打造超级IP

爆款:如何打造超级IP

【美】安妮塔•埃尔伯斯 / 杨雨 / 中信出版社 / 2016-1-10 / 49

哈佛商学院IP运营与产品管理方法论第一书,翻转长尾理论的重要著作! 电影大片、当红炸子鸡、百万畅销书背后的运营逻辑是什么? 《五十度灰》、Lady Gaga、维多利亚的秘密有何共同秘密? 漫威如何将蜘蛛侠、X战警、绿巨人打造成金矿? 皇马如何打造体育IP,一跃成为全球收 入最高的足球俱乐部? 爆款策略如何运用于电影、电视、音乐、出版、体育与商业各领域? ----......一起来看看 《爆款:如何打造超级IP》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具