作者:景琇
提取固件并分析
binwalk -Me DSL-3782_A1_EU_1.01_07282016.bin
查看/usr/etc/init.d/rcS
#Web serverif [ ! -d "/var/boaroot/html/" ] || [ ! -d "/var/boaroot/cgi-bin/" ]; then/userfs/bin/boa -c /boaroot -d &/bin/rm -rf /var/boarootelse/userfs/bin/boa -c /var/boaroot -d &fi
說明boa為web server。
定位漏洞點
查詢資料,官網說漏洞點出在cfg_manager的byte_4C0160中,使用IDA尋找一下。
進入sub_474c78,v0 = system(byte_4C0160);中使用system進行命令執行。
但是無法判斷byte_4C0160是否為用戶可控,尋找byte_4C0160的賦值點,查看byte_4C0160的調用。
addiu $s2,$v0,(byte_4c0160-0x4c0000)是MIPS的相加指令,即$s2=$v0+(byte_4c0160-0x4c0000),跟進查看。
.text:00474BD8 addiu $s2, $v0, (byte_4C0160 - 0x4C0000).text:00474BDC move $a0, $s2.text:00474BE0 move $a1, $zero.text:00474BE4 jalr $t9 ; memset.text:00474BE8 li $a2, 0x80.text:00474BEC li $v0, 0x70 # 'p'.text:00474BF0 beq $s0, $v0, loc_474C58.text:00474BF4 lw $gp, 0x10($sp).text:00474BF8 la $t9, sprintf.text:00474BFC lui $a1, 0x4A # 'J'.text:00474C00 move $a0, $s2.text:00474C04 li $a1, aTracerouteNM10 # "traceroute -n -m 10 -w 2 %s > /tmp/var/"....text:00474C08 jalr $t9 ; sprintf.text:00474C0C move $a2, $s1.text:00474C10 lw $gp, 0x10($sp).text:00474C14.text:00474C14 loc_474C14: # CODE XREF: .text:00474C70↓j.text:00474C14 la $t9, pthread_create.text:00474C18 li $a2, sub_474C78
根據這段匯編,可以看到byte_4c0160傳值給了$s2,然后給了$a0,然后調用了sprintf,然后通過pthread_create調用了我們發現調用system函數的sub_474c78。
審核編輯:湯梓紅
-
代碼
+關注
關注
30文章
4779瀏覽量
68526 -
D-Link
+關注
關注
0文章
11瀏覽量
18317
原文標題:D-Link DSL-3782 代碼注入漏洞CVE-2022-34527分析
文章出處:【微信號:IOTsec Zone,微信公眾號:IOTsec Zone】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論