<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    如何在幾分鐘內找到多個 SQL 注入漏洞

    VSole2022-04-06 07:14:43

    今天來分享一下我是如何用幾分鐘發現某個漏洞賞金的目標多個 SQL 注入漏洞的,接下來以目標域名 redacted.org 為例。

    枚舉階段

    首先我使用 waybackurls 工具查看目標網站上有哪些 URL,然后看到了很多 PHP 的文件,也許可以在其中找到 SQL 注入漏洞,使用命令過濾一些結果之后輸出到文件:

    waybackurls https://redacted.org/ | uro | grep “.php” > php-files.txt

    查看輸出的文件,發現了如圖中的內容:

    看文件名感覺似乎有戲,接下來需要找一些可用的參數,需要制作一個參數名字典然后暴力破解這些頁面,搞起。

    獲取參數

    我們基于之前輸出的內容,將文件名和參數分離出來,然后去重:

    cat php-files.txt| grep -i get | sed 's/.*.get//' | sort -u

    接下來刪除 php 后綴,得到一個以文件名為關鍵詞的列表,只需在上一條命令后加上 cut -f1 -d 即可:

    結果中有的有兩個單詞或者多個單詞的組合,但是我不知道其中那個單詞是參數,所以就想辦法將其拆分,經過一頓搜索,發現可以用命令:

    sed 's/[AZ]+/&/g'

    我認為參數一般都是小寫,所以需要將所有大寫字符轉換為小寫,且保留之前的內容:

    接下來我們有了兩個參數字典可用,然后使用工具 FFUF 來進行測試,先嘗試用全是小寫字符的字典:

    ffuf -w lowercase-parameters.txt -u "https://redacted.org/searchProgressCommitment.php?FUZZ=5"

    但是沒有任何結果

    老實說,我很郁悶,但是突然想到一個方案,把請求的方法改成 POST 怎么樣?命令如下:

    ffuf -w lowercase-parameters.txt -X POST -d "FUZZ=5" -u "https://redacted.org/searchProgressCommitment.php"

    結果得到了 commitment & id 參數 


    接下來我可以對這些參數進行測試了,復制請求的數據包內容到文件中,丟給 sqlmap 去測

    漏洞利用

    sqlmap 的命令如下:

    sqlmap -r req3.txt -p commitment --force-ssl --level 5 --risk 3 --dbms=”MYSQL” --hostname --current-user --current-db --dbs --tamper=between --no-cast

    漏洞測試成功,確實存在 SQL 注入漏洞


    接下來使用同樣的方法,測試其他 URL ,結果我找到了三個同樣存在 SQL 注入漏洞的地方

    第二個 SQLI:帶有 id 參數的 ws_delComment.php

    第三個 SQLI:帶有 target 參數的 getTargets.php

    第四個:mailing_lists.php 帶 list 參數

    一共發現四個 SQL 注入,太棒了

    我向安全團隊報告了所有 SQL 注入漏洞并審核通過,他們在積極解決問題,感謝大家的閱讀。

    sql注入注入漏洞
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    id=3';對應的sql:select * from table where id=3' 這時sql語句出錯,程序無法正常從數據庫中查詢出數據,就會拋出異常; 加and 1=1 ,URL:xxx.xxx.xxx/xxx.php?id=1' order by 3# 沒有報錯,說明存在3列爆出數據庫:?id=-1' union select 1,group_concat,3 from information_schema.schemata#爆出數據表:?id=1' and extractvalue--+(爆字段)?
    id=1' order by 3# 沒有報錯,說明存在3列。id=-1' union select 1,group_concat,3 from 數據庫名.數據表名--+拓展一些其他函數:system_user() 系統用戶名。updatexml函數:細節問題:extractvalue()基本一樣,改個關鍵字updatexml即可,與extractvalue有個很大的區別實在末尾注入加上,如:,而extractvalue函數末尾不加1(數值)?
    服務器的相關信息(真實ip,系統類型,版本,開放端口,WAF等) 網站指紋識別(包括,cms,cdn,證書等),dns記錄 whois信息,姓名,備案,郵箱,電話反查(郵箱丟社工庫,社工準備等) 子域名收集,旁站,C段等 google hacking針對化搜索,pdf文件,中間件版本,弱口令掃描等 掃描網站目錄結構,爆后臺,網站banner,測試文件,備份等敏感文件泄漏等 傳輸協議,通用漏洞,ex
    網上安全滲透測試工具整理全集,部分鏈接可能失效,但可以搜索到
    Web Hacking 101 中文版:https://wizardforcel.gitbooks.io/web-hacking-101/content/ 淺入淺出Android安全 中文版:https://wizardforcel.gitbooks.io/asani/content/ Android 滲透測試學習手冊 中文
    未正確驗證用戶輸入的應用程序使它們容易受到 SQL 注入的攻擊。SQL 注入攻擊 發生在攻擊者能夠通過操縱用戶輸入數據將一系列惡意 SQL 語句插入“查詢”以供后端數據庫執行時。使用這種類型的威脅,應用程序可以很容易地被黑客入侵并被攻擊者竊取機密數據。
    概述在學習SQL注入之前,我們應先了解什么是SQL?原理SQL注入就是當開發人員對用戶輸入數據的合法性沒有判斷或過濾不嚴時,攻擊者通過拼接惡意SQL語句誘使解釋器在未經適當授權的情況下執行意外命令或訪問數據。
    在程序執行出錯時,不要顯示與內部實現相關的細節。直接對象引用使用的唯一標識可以通過隨機數生成以難以猜測。在進行頁面顯示或做處理之前對用戶權限進行檢查。
    SSJI - Node.js漏洞介紹
    2021-11-09 16:16:27
    ssji,為服務器端的javascript注入,可分為sql注入和代碼注入 運行于服務端的javascript常用的有node.js node.js 是運行于服務端的javascript 把javascript變為服務器端的腳本語言
    當我們輸入正確的手機號和正確的短信驗證碼,然后進入重置密碼的最后一步,也就是輸入新的密碼輸入密碼后提交到服務端的post數據包需要包含當前用戶的身份信息。修改響應包重置任意賬號密碼:通過手機找回密碼一般需要短信驗證碼驗證,服務端需要告訴客戶端,輸入的驗證碼是否正確。
    VSole
    網絡安全專家
    xs
      亚洲 欧美 自拍 唯美 另类