1.第79篇:记一次Oracle注入漏洞提权的源码艰难过程
2.SQLMap 源码阅读
3.6款较流行的开源漏洞扫描工具推荐及特点分析
4.2023最新版超详细Sqlmap安装保姆级教程,SQL注入使用指南,分析收藏这一篇就够了
5.11种流行的源码渗透测试工具
6.13款Chrome渗透插件推荐
第79篇:记一次Oracle注入漏洞提权的艰难过程
大家好,我是分析ABC_。我近期遇到了一个Oracle注入漏洞,源码是分析vfp程序源码搜索型的盲注漏洞,只能通过折半法一个字符一个字符的源码猜解数据。经过判断,分析发现这是源码DBA权限的注入点。接下来,分析我将分享如何通过这个注入点获取操作系统的源码权限,并且分享了在技术研究过程中遇到的分析问题和解决方法。
在解决这个问题时,源码我进行了两方面的分析优化来加快SQL注入的速度。首先,源码我在search=%语句中加入了存在结果很少的搜索值,比如将search=%,只显示出一条搜索结果,这样可以减少数据库的检索量和HTTP返回的数据包大小,从而加快SQL注入的速度。其次,我修改了SQLmap的默认个线程限制,这需要修改SQLmap的源码,这里就不详细解释了。
在Oracle注入提权的语句方面,我注意到很多文章给出的语句通常分为三个步骤,其中第二步就是赋予当前Oracle账号相关的JAVA权限。然而,这个语句包含了大量的单引号和左右尖括号,有时候会被转义掉导致注入失败,而且这个语句异常复杂,容易出错。因此,我使用了一个简单的语句替代,效果更佳。这个语句的格式是BEGIN开头,然后end;结尾,音频源码输出有好坏代表一个PL/SQL语句块,如下所示:select dbms_xmlquery.newcontext('declare PRAGMA AUTONOMOUS_TRANSACTION; BEGIN EXECUTE IMMEDIATE ''grant javasyspriv to test''; end;') from dual。
我使用了SQLmap的--sql-shell命令将上述语句执行,但是最后执行的命令没有成功。在处理这种情况时,我通常有两种可能:一是执行命令被拦截,二是Java代码没有执行成功。因此,我使用了如下SQL语句进行判断,结果返回0,说明函数没有添加成功。经过一系列测试,我发现是SQLmap的SQL-shell下功能下,上述复杂的SQL语句根本没执行成功。
为了更方便地执行Oracle的复杂SQL语句,我将SQL注入语句进行了修改,通过and (插入SQL语句) is not null的方式,可以在左右括号中插入各种Oracle的SQL语句。然而,这种方法也遇到了WAF拦截的问题。为了解决这个问题,我使用了Oracle特有的编码方式,将SQL语句成功执行。再次执行查询LinuxUtil是否存在的SQL语句,发现返回count()不为0,说明Java代码成功添加执行。然而,LinuxUtil命令依然无法执行,我怀疑是Java权限没有添加成功。我执行了查询当前用户权限的语句,发现当前用户具有CONNECT、RESOURCE、JAVASYSPRIV权限,说明Java相关权限确实是添加成功了。然而,为什么还是同城信息站源码无法调用LinuxUtil命令呢?我重新搭建了测试环境,使用Navicat执行Oracle提权语句后,发现报了权限错误。
在查阅大量国外文章后,我发现判断当前用户是否有Java权限,需要查询session_roles表。该表用于显示当前会话中的角色信息,必须session_roles中有JAVASYSPRIV权限才行。我尝试断开Oracle当前账号的连接,重新连接之后,session_roles表中就有相应权限了。然而,我们是在SQL注入点,无法断开重连,那么如何使Java权限立即生效呢?国外文章给出了几种方法,但执行后仍然无法解决问题。
在等待第二天后,惊奇地发现session_roles中存在JAVASYSPRIV角色了,我也不清楚原因,但此时可以通过select LinuxExecHanshu('whoami') from dual执行命令。然而,盲注过程太麻烦,我选择结合SQLmap的SQL-shell终端来盲注入,因为该SQL语句比较简短,SQLmap的SQL-shell模式猜解是完全无压力的。最终,我们成功获取了系统权限。
总结来说,这个dbms_xmlquery.newcontext函数在高版本的Oracle数据库中已经不能提权成功,甚至不能使用,需要使用其他方法进行提权。在本地搭建的Oracle环境中,大多数情况下可以直接提权成功,但极少数情况下需要断开重连,具体原因不明。如果文章中有错误,欢迎批评指正。地理位置定位源码后续,我将继续分享Oracle提权的其他方法,敬请期待。
SQLMap 源码阅读
本文主要解析了SQLMap的源码阅读流程。首先,我们确认了SQLMap运行的流程图,这有助于我们深入理解源码。在开始SQLMap运行前,程序进行一系列初始化操作,包括环境设置、依赖加载、变量配置等。
接下来,我们处理URL。通过cmdLineParser()从命令行获取参数,进而通过initOptions(cmdLineOptions)解析这些命令行参数。初始化函数中,通过loadBoundaries()、loadPayloads()、_loadQueries()加载payload,这些函数负责从XML文件中加载边界、payload和查询。在loadBoundaries()中,程序读取data/xml/boundaries.xml文件并解析其中的XML,将结果添加到conf对象的tests属性中。conf对象存储了目标的相关信息以及配置信息。
在URL处理阶段,程序通过getCurrentThreadData()获取当前线程数据,并调用f(*args, **kwargs)进行处理。这里的逻辑位于/lib/controller/controller.py文件下,主要工作包括打印日志、赋值和添加HTTP Header等,最终到达parseTargetUrl()函数。在该函数中,程序进行URL的剖析与拆解,并将这些内容保存到conf对象的庄家存货指标源码大全对应属性中,以便后续使用。
接着,SQLMap会生成注入检测的payload,核心代码位于controller.py文件的行。在setupTargetEnv()函数中,程序调用hashDBRetrieve()函数,根据参数KB_INJECTIONS检索payload。payload生成逻辑在第行,执行SQL语句并使用basePickle进行加密。最终,程序生成payload并进行探测,如果目标返回Connection refused,则返回False。
在WAF检测部分,当URL处理完毕后,程序进行探测,判断目标是否存在WAF。如果存在WAF,则生成用于fuzz的payload,这个payload基于/sqlmapproject/sqlmap.git
测试 sqlmap 是否正常工作,前提需要安装 Python 2:
apt install python2
cd 到 sqlmap 目录:
cd sqlmap/
运行 sqlmap 命令并查看帮助手册:
./sqlmap.py -h
检测 SQL 注入:
1. 手动判断是否存在漏洞。对动态网页进行安全审计,通过接受动态用户提供的 GET、POST、Cookie 参数值、User-Agent 请求头。构造 url1 和 url2,如果 url1 访问结果与原始网页一致,url2 不一致,表示存在 SQL 注入。
2. 使用 sqlmap 自动检测漏洞。检测语法为:sqlmap.py -u 目标 url。
3. 寻找 SQL 注入实例,通过百度搜索特定字符串并测试 URL。
进行数据库操作:
列数据库信息:--dbs
获取当前使用的数据库:--current-db
获取当前用户:--current-user
列出 SQL Server 所有用户:--users
列出数据库账户与密码:--passwords
指定数据库列出所有表:-D 数据库名 --tables
指定数据库表列出所有字段:-D 数据库名 -T 表名 --columns
导出指定字段的数据:-D 数据库名 -T 表名 -C 字段名 --dump
指定范围导出数据:-D 数据库名 -T 表名 -C 字段名 --start 行数 --stop 行数 --dump
SQLMAP 实用技巧:
绕过 WAF 注入:修改 sqlmap 源代码文件,使用特定的绕过方法。
URL 重写测试:使用特殊字符进行注入测试。
列举并破解密码哈希:sqlmap 列举用户并尝试破解密码。
获取数据个数:使用 --count 参数。
网站漏洞爬取:使用 --batch --crawl 参数。
预估时间注入:使用 --eta 参数。
使用 hex 避免编码问题:使用 --hex 参数。
模拟手机环境:使用 --mobile 参数。
智能判断测试:使用 --batch --smart 参数。
结合 burpsuite 使用:使用 -r 参数读取抓包文件。
自动填写表单注入:自动化表单填写功能。
读取文件:使用 --file 参数读取特定文件。
延时注入:使用 --technique 参数。
结合 burpsuite 进行 post 注入:通过配置 burpsuite 代理拦截请求。
cookies 注入:通过 --cookies 参数进行 cookies 注入。
MySQL 提权:连接数据库后,利用 sqlmap 上传特定插件。
执行命令:特定权限下可执行命令。
通过以上步骤和技巧,可以全面掌握 sqlmap 的使用方法,有效进行 SQL 注入测试和数据库操作。
种流行的渗透测试工具
您是否在寻找最适合您Web应用程序和网络安全需求的渗透测试工具?您是否想要比较和分析不同的渗透测试工具,以确定最适合您企业的工具?或者,您只是想了解有哪些工具以及它们的功能?如果是这样,那么这个博客已经为您提供了所需的信息。
无论是为了遵守法规、进行安全性评估,还是为了增强IT环境对网络安全威胁的防御能力,选择正确的工具组合都至关重要。如果渗透测试人员无法使用正确的工具,那么可能无法检测到一些关键的漏洞,这可能导致错误的安保感。
以下是种流行的渗透测试工具,它们非常适合检测漏洞并准确模拟网络攻击。接下来,我们将探讨它们的功能和兼容的平台。
1. Burp Suite Pro
这是最流行、功能强大和先进的渗透测试工具之一,可以帮助渗透测试人员修复和利用漏洞,并确定其目标的细微盲点。它是一个包含多种高级工具的套件,非常适合Web应用程序的渗透测试。
2. SQLmap
这是一个功能强大的开放源代码渗透测试工具,可以帮助渗透测试人员识别和利用影响不同数据库的SQL注入漏洞。
3. Aircrack-ng
这是一个网络安全渗透测试工具,带有一系列实用程序,可以评估Wi-Fi网络是否存在漏洞。
4. Wireshark
这是必备的网络协议分析器,广泛用于捕获实时网络流量以进行网络故障排除。
5. Nmap
这是最好的和渗透测试人员最喜欢的开源渗透测试工具之一,可以帮助识别网络中的开放端口和漏洞。
6. Metasploit
这是一个渗透测试框架,被网络攻击者和道德黑客广泛使用。
7. Hashcat
这是黑客和道德黑客社区使用的一种流行的开源密码破解工具。
8. WPScan
这是一款开源WordPress安全扫描程序,可以帮助扫描WordPress核心、插件和主题中的已知漏洞。
9. Nessus
这是一个功能强大且广受欢迎的网络漏洞扫描程序。
. MobSF
这是一个全面的、多合一的框架,用于渗透测试、恶意软件分析和不同平台上的移动应用程序的安全评估。
. John the Ripper
这是一个密码破解和恢复工具,可以帮助您找到系统上的弱密码并公开它们。
款Chrome渗透插件推荐
在进行网络渗透测试时,选择合适的扩展插件能够极大提升效率和精确度。以下是款推荐的Chrome扩展插件,这些插件均可在Google Chrome的网上商店免费下载与安装。
1. Nikto: 该插件能够扫描网站安全漏洞,对于渗透测试人员来说,是一款必备工具。
2. W3AF: 通过此插件,可以对目标网站进行深入漏洞挖掘,提高测试效果。
3. SQLmap: 专注于SQL注入攻击检测与利用,能够有效识别并处理数据库安全漏洞。
4. Burp Suite: 一款全面的渗透测试工具,包括代理服务器、抓包分析和攻击功能。
5. OWASP ZAP: 由开放源代码社区提供的免费工具,用于发现和测试Web应用程序的安全性。
6. WebInspect: 深度扫描和评估网站安全性,支持多种扫描策略和报告格式。
7. Acunetix: 通过全面的Web应用漏洞扫描,提供详细的漏洞报告和修复建议。
8. Qualys SSL Labs: 专门针对SSL/TLS协议安全性的测试,有助于评估网站安全性。
9. SSL Checker: 用于检测网站SSL证书的状态和有效性,确保安全通信。
. XSS-Attacker: 专为检测跨站脚本攻击设计,通过插件可快速识别潜在漏洞。
. Web Vulnerability Scanner: 对网站进行全面的安全扫描,发现并报告漏洞。
. HTML Tidy: 清理和修复HTML代码,确保网站内容正常显示。
. Browser Extension Debugger: 用于调试浏览器扩展,解决兼容性和性能问题。
以上插件各有特色,适应不同的渗透测试场景和需求。在实际操作中,根据具体任务选择合适的工具,能够显著提高测试效率与质量。
DVWA实战篇分钟学会 SQL 注入攻击实战
SQL注入是一种通过操纵Web应用的查询语句来执行恶意SQL命令的攻击手段。它利用应用程序中安全漏洞,能获取或修改数据库内容。SQL注入主要分为普通注入和盲注,前者通过页面显示数据逐步获取信息,后者则需猜测SQL语句的正确性。类型上,根据注入数据类型,分为数字型和字符型;提交参数方式有GET和POST等。
在低级别SQL注入实战中,通过手工注入发现DVWA网站存在漏洞。首先,在安全级别为Low的页面中,通过GET方式注入,观察报错信息判断数据库类型,然后逐步利用'字符和#符号进行测试,确定字符型注入,进一步通过联合查询获取表名、字段名和敏感信息。自动化工具SQLMap可以协助探测数据库和表信息,甚至解密密码。
在Medium级别,通过POST方式注入,需要借助工具如Burpsuite绕过防注入机制。使用HEX编码绕过mysql_real_escape_string函数,成功获取字段名和密码。
在High级别,页面结构复杂,但通过分析源码和尝试注入,仍然能发现字符型注入,并进行类似低级别的操作。Impossible级别则采用PDO技术,几乎消除了SQL注入的可能性。
webå®å ¨è¦å¦ä»ä¹
å¦ä¹ Webå®å ¨éè¦ææ¡Webå®å ¨ç¸å ³æ¦å¿µãæ¸éæµè¯ç¸å ³å·¥å ·ãæ¸éå®ææä½ãçæWindows/Kali Linuxãä¸é´ä»¶åæå¡å¨çå®å ¨é ç½®ãèæ¬ç¼ç¨å¦ä¹ ãæºç 审计ä¸æ¼æ´åæãå®å ¨ä½ç³»è®¾è®¡ä¸å¼åççãç®ååä¸ä¸ªå¦ä¹ è§åï¼
第ä¸æ¥ï¼Webå®å ¨ç¸å ³æ¦å¿µ
建议å¦ä¹ æ¶é´ï¼2å¨
å¦ä¹ å 容å¦ä¸ï¼
1ãçæåºæ¬æ¦å¿µ(SQLæ³¨å ¥ãä¸ä¼ ãXSSãCSRFãä¸å¥è¯æ¨é©¬ç)ã
2ãéè¿å ³é®å(SQLæ³¨å ¥ãä¸ä¼ ãXSSãCSRFãä¸å¥è¯æ¨é©¬ç)è¿è¡Googleã
3ãé 读ãWebå®å ¨æ·±åº¦åæãï¼ä½ä¸ºå ¥é¨å¦ä¹ è¿æ¯å¯ä»¥çã
4ãçä¸äºæ¸éç¬è®°/è§é¢ï¼äºè§£æ¸éå®æçæ´ä¸ªè¿ç¨ï¼å¯ä»¥Google(æ¸éç¬è®°ãæ¸éè¿ç¨ãå ¥ä¾µè¿ç¨ç)ã
第äºæ¥ï¼çææ¸éç¸å ³å·¥å ·
建议å¦ä¹ æ¶é´ï¼3å¨
å¦ä¹ å 容å¦ä¸ï¼
1ãçæAWVSãSqlmapãBurpsuiteãNessusãChina chopper ãNmapãAppscançç¸å ³å·¥å ·ç使ç¨ã
2ãäºè§£è¯¥ç±»å·¥å ·çç¨éå使ç¨åºæ¯ã
3ãä¸è½½æ åé¨ççè¿äºè½¯ä»¶è¿è¡å®è£ ã
4ãå¦ä¹ 并è¿è¡ä½¿ç¨ï¼å ·ä½ææå¯ä»¥å¨ç½ä¸æç´¢ï¼ä¾å¦ï¼Burpsuiteçæç¨ãSqlmapã
5ã常ç¨çè¿å 个软件é½å¦ä¼åï¼å¯ä»¥å®è£ é³éå¯å¨åä¸ä¸ªæ¸éå·¥å ·ç®±
第ä¸æ¥ï¼æ¸éå®ææä½
建议å¦ä¹ æ¶é´ï¼5å¨
å¦ä¹ å 容å¦ä¸ï¼
1ãææ¡æ¸éçæ´ä¸ªé¶æ®µå¹¶è½å¤ç¬ç«æ¸éå°åç«ç¹ã
2ãç½ä¸æ¾æ¸éè§é¢ç并æèå ¶ä¸çæè·¯ååçï¼å ³é®å(æ¸éãSQLæ³¨å ¥è§é¢ãæ件ä¸ä¼ å ¥ä¾µãæ°æ®åºå¤ä»½ãDedecmsæ¼æ´å©ç¨çç)ã
3ãèªå·±æ¾ç«ç¹/æ建æµè¯ç¯å¢è¿è¡æµè¯ï¼è®°ä½è¯·éèå¥½ä½ èªå·±ã
4ãæèæ¸é主è¦å为å 个é¶æ®µï¼æ¯ä¸ªé¶æ®µéè¦ååªäºå·¥ä½ï¼ä¾å¦è¿ä¸ªï¼PTESæ¸éæµè¯æ§è¡æ åã
5ãç 究SQLæ³¨å ¥çç§ç±»ãæ³¨å ¥åçãæå¨æ³¨å ¥æå·§ã
6ãç 究æ件ä¸ä¼ çåçï¼å¦ä½è¿è¡æªæã解ææ¼æ´å©ç¨çï¼åç §ï¼ä¸ä¼ æ»å»æ¡æ¶ã
7ãç 究XSSå½¢æçåçåç§ç±»ï¼å ·ä½å¦ä¹ æ¹æ³å¯ä»¥Googleã
8ãç 究Windows/Linuxææçæ¹æ³åå ·ä½ä½¿ç¨ï¼å¯ä»¥åèï¼ææã
9ãå¯ä»¥åè: å¼æºæ¸éæµè¯è弱系ç»ã
第åæ¥ï¼å ³æ³¨å®å ¨åå¨æ
建议å¦ä¹ æ¶é´ï¼1å¨
å¦ä¹ å 容å¦ä¸ï¼
1ãå ³æ³¨å®å ¨åçææ°æ¼æ´ãå®å ¨äºä»¶ä¸ææ¯æç« ã
2ãæµè§æ¯æ¥çå®å ¨ææ¯æç« /äºä»¶ã
3ãéè¿å¾®åãå¾®ä¿¡å ³æ³¨å®å ¨åçä»ä¸äººå(éå°å¤§ççå ³æ³¨æè 好åææå ³æ³¨)ï¼å¤©å¤©æ½æ¶é´å·ä¸ä¸ã
4ãéè¿feedly/é²æ订é å½å å¤å®å ¨ææ¯å客(ä¸è¦ä» éäºå½å ï¼å¹³æ¶å¤æ³¨æ积累)ã
5ãå »æä¹ æ¯ï¼æ¯å¤©ä¸»å¨æ交å®å ¨ææ¯æç« é¾æ¥å°iæ¥ç§ç¤¾åºè¿è¡ç§¯æ·ã
6ãå¤å ³æ³¨ä¸ææ°æ¼æ´å表ï¼å¯ä»¥ççhackeroneãfreebufãå®å ¨å®¢çï¼éå°å ¬å¼çæ¼æ´é½å»å®è·µä¸ã
7ãå ³æ³¨å½å å½é ä¸çå®å ¨ä¼è®®çè®®é¢æè å½åã
8ãå å ¥ææ¯äº¤æµç¾¤ï¼ä¸ç¾¤å 大佬们讨æä¸äºç»éªåæå·§ã
第äºæ¥ï¼çæWindows/Kali Linux
建议å¦ä¹ æ¶é´ï¼3å¨
å¦ä¹ å 容å¦ä¸ï¼
1ãå¦ä¹ Windows/Kali Linuxåºæ¬å½ä»¤ã常ç¨å·¥å ·ã
2ãçæWindowsä¸ç常ç¨çcmdå½ä»¤ï¼ä¾å¦ï¼ipconfig,nslookup,tracert,net,tasklist,taskkillçã
3ãçæLinuxä¸ç常ç¨å½ä»¤ï¼ä¾å¦ï¼ifconfig,ls,cp,mv,vi,wget,service,sudoçã
4ãçæKali Linuxç³»ç»ä¸ç常ç¨å·¥å ·ï¼å¯ä»¥åèãWeb Penetration Testing with Kali LinuxãããHacking with Kaliãçã
5ãçæmetasploitå·¥å ·ï¼å¯ä»¥åèãMetasploitæ¸éæµè¯æåãã
第å æ¥ï¼ä¸é´ä»¶åæå¡å¨çå®å ¨é ç½®
建议å¦ä¹ æ¶é´ï¼3å¨
å¦ä¹ å 容å¦ä¸ï¼
1ãå¦ä¹ æå¡å¨ç¯å¢é ç½®ï¼å¹¶è½éè¿æèåç°é ç½®åå¨çå®å ¨é®é¢ã
2ãWindows serverç¯å¢ä¸çIISé ç½®ï¼ç¹å«æ³¨æé ç½®å®å ¨åè¿è¡æéã
3ãLinuxç¯å¢ä¸çLAMPçå®å ¨é ç½®ï¼ä¸»è¦èèè¿è¡æéãè·¨ç®å½ãæ件夹æéçã
4ãè¿ç¨ç³»ç»å åºï¼éå¶ç¨æ·ååå£ä»¤ç»éï¼éè¿iptableséå¶ç«¯å£ï¼é 置软件Wafå 强系ç»å®å ¨ï¼å¨æå¡å¨é ç½®mod_securityçç³»ç»ã
5ãéè¿Nessus软件对é ç½®ç¯å¢è¿è¡å®å ¨æ£æµï¼åç°æªç¥å®å ¨å¨èã
第ä¸æ¥ï¼èæ¬ç¼ç¨å¦ä¹
建议å¦ä¹ æ¶é´ï¼4å¨
å¦ä¹ å 容å¦ä¸ï¼
1ãéæ©èæ¬è¯è¨ï¼Perl/Python/PHP/Go/Javaä¸çä¸ç§ï¼å¯¹å¸¸ç¨åºè¿è¡ç¼ç¨å¦ä¹ ã
2ãæ建å¼åç¯å¢åéæ©IDEï¼PHPç¯å¢æ¨èWampåXAMPPï¼IDE强çæ¨èSublimeã
3ãPythonç¼ç¨å¦ä¹ ï¼å¦ä¹ å 容å å«ï¼è¯æ³ãæ£åãæ件ãç½ç»ãå¤çº¿ç¨ç常ç¨åºï¼æ¨èãPythonæ ¸å¿ç¼ç¨ãã
4ãç¨Pythonç¼åæ¼æ´çexpï¼ç¶ååä¸ä¸ªç®åçç½ç»ç¬è«ã
5ãPHPåºæ¬è¯æ³å¦ä¹ 并书åä¸ä¸ªç®åçå客系ç»ï¼åè§ãPHPä¸MySQLç¨åºè®¾è®¡(第4ç)ããè§é¢ã
6ãçæMVCæ¶æï¼å¹¶è¯çå¦ä¹ ä¸ä¸ªPHPæ¡æ¶æè Pythonæ¡æ¶(å¯é)ã
7ãäºè§£Bootstrapçå¸å±æè CSSã
ç¬¬å «æ¥ï¼æºç 审计ä¸æ¼æ´åæ
建议å¦ä¹ æ¶é´ï¼3å¨
å¦ä¹ å 容å¦ä¸ï¼
1ãè½ç¬ç«åæèæ¬æºç ç¨åºå¹¶åç°å®å ¨é®é¢ã
2ãçææºç 审计çå¨æåéææ¹æ³ï¼å¹¶ç¥éå¦ä½å»åæç¨åºã
3ãäºè§£Webæ¼æ´çå½¢æåå ï¼ç¶åéè¿å ³é®åè¿è¡æ¥æ¾åæã
4ãç 究Webæ¼æ´å½¢æåçåå¦ä½ä»æºç å±é¢é¿å 该类æ¼æ´ï¼å¹¶æ´çæchecklistã
å¦ä¹ å°åï¼iæ¥ç§å®ç½ï¼ä¼å®æ®¿ï¼
第ä¹æ¥ï¼å®å ¨ä½ç³»è®¾è®¡ä¸å¼å
建议å¦ä¹ æ¶é´ï¼5å¨
å¦ä¹ å 容å¦ä¸ï¼
1ãè½å»ºç«èªå·±çå®å ¨ä½ç³»ï¼å¹¶è½æåºä¸äºå®å ¨å»ºè®®æè ç³»ç»æ¶æã
2ãå¼åä¸äºå®ç¨çå®å ¨å°å·¥å ·å¹¶å¼æºï¼ä½ç°ä¸ªäººå®åã
3ã建ç«èªå·±çå®å ¨ä½ç³»ï¼å¯¹å ¬å¸å®å ¨æèªå·±çä¸äºè®¤è¯åè§è§£ã
4ãæåºæè å å ¥å¤§åå®å ¨ç³»ç»çæ¶ææè å¼åã
某商城最新CMS从0day审计到漏洞利用
吃个早餐,开始了新的一天。朋友分享了最新的商城CMS给我,我决定帮忙审计,并分享这次经历。
首先,我部署了网站源码并查看了前台和后台页面。接着,使用工具进行了初步审计。我了解到,尽管多入口CMS有时工具难以发现漏洞,工具仍能提供半辅助作用。
我分析了item.php中拼接参数的部分,使用Sublime Text3打开进行研究。在SQL语句中,发现id值直接拼接,随后分析了Req()、Qry()、Qra()函数,发现它们没有过滤。
我进一步查看require引入的common.php文件,发现Qry和Qrc函数为正常数据库操作,而Req函数只是一种接受参数的方式。但函数内有Rpl函数,它进行了字符串替换,替换了加号、空格等字符。
在SQL语句中,$n通过"."进行拼接,无需单引号或双引号闭合。我构造了payload进行注入尝试,发现可以成功绕过Rpl函数。
为了验证,我使用了SQLMAP工具并找到了一个空格替换为/**/的tamper。通过运行sqlmap构造参数,我成功找到了数据库test2中的xxx_admin表及其字段Nm和Np的内容。
最后,我总结了这次审计的经验,强调了使用过滤方法,如PDO预编译,来修复漏洞的重要性。文章源于微信公众号(米瑞尔信息安全),由作者啊giao撰写。