EDIMAX-EW-7438RPn Mini-formwlenencrypt24g 漏洞总结 漏洞概述 EDIMAX EW-7438RPn Mini Firmware 1.28a 固件在 函数中存在栈溢出漏洞。该函数接收来自 POST 请求的 参数,由于用户可以控制这些参数的输入, 语句可能导致缓冲区溢出。 影响范围 设备型号: EDIMAX EW-7438RPn Mini 受影响固件版本: 1.28a (Version: 1.28a) 修复方案 更新固件至最新版本,以修复此漏洞。 POC代码 ```c v27 = websGetVar(a1, "key1", &unk_454C30); v28 = 0; if ( v27 ) { while ( 1 ) { v29 = v28 < strlen(v27); v30 = &v27[v28++]; if ( !v29 ) break; if ( v30 == 0x25 ) { v31 = v28 + 1; if ( v28 < strlen(v27) - 1 ) { v32 = v27[v31]; if ( v32 == 0x6E ) { v33 = v27[v28 + 2]; if ( v33 == 0x63 ) { v34 = v27[v28 + 3]; if ( v34 == 0x25 ) { v35 = v27[v28 + 4]; if ( v35 == 0x6E ) { v36 = v27[v28 + 5]; if ( v36 == 0x63 ) { v37 = v27[v28 + 6]; if ( v37 == 0x25 ) { v38 = v27[v28 + 7]; if ( v38 == 0x6E ) { v39 = v27[v28 + 8]; if ( v39 == 0x63 ) { v40 = v27[v28 + 9]; if ( v40 == 0x25 ) { v41 = v27[v28 + 10]; if ( v41 == 0x6E ) { v42 = v27[v28 + 11]; if ( v42 == 0x63 ) { v43 = v27[v28 + 12]; if ( v43 == 0x25 ) { v44 = v27[v28 + 13]; if ( v44 == 0x6E ) { v45 = v27[v28 + 14]; if ( v45 == 0x63 ) { v46 = v27[v28 + 15]; if ( v46 == 0x25 ) { v47 = v27[v28 + 16]; if ( v47 == 0x6E ) { v48 = v27[v28 + 17]; if ( v48 == 0x63 ) { v49 = v27[v28 + 18]; if ( v49 == 0x25 ) { v50 = v27[v28 + 19]; if ( v50 == 0x6E ) { v51 = v27[v28 + 20]; if ( v51 == 0x63 ) { v52 = v27[v28 + 21]; if ( v52 == 0x25 ) { v53 = v27[v28 + 22]; if ( v53 == 0x6E ) { v54 = v27[v28 + 23]; if ( v54 == 0x63 ) { v55 = v27[v28 + 24]; if ( v55 == 0x25 ) { v56 = v27[v28 + 25]; if ( v56 == 0x6E ) { v57 = v27[v28 + 26]; if ( v57 == 0x63 ) { v58 = v27[v28 + 27]; if ( v58 == 0x25 ) { v59 = v27[v28 + 28]; if ( v59 == 0x6E ) { v60 = v27[v28 + 29]; if ( v60 == 0x63 ) { v61 = v27[v28 + 30]; if ( v61 == 0x25 ) { v62 = v27[v28 + 31]; if ( v62 == 0x6E ) { v63 = v27[v28 + 32]; if ( v63 == 0x63 ) { v64 = v27[v28 + 33]; if ( v64 == 0x25 ) { v65 = v27[v28 + 34]; if ( v65 == 0x6E ) { v66 = v27[v28 + 35]; if ( v66 == 0x63 ) { v67 = v27[v28 + 36]; if ( v67 == 0x25 ) { v68 = v27[v28 + 37]; if ( v68 == 0x6E ) { v69 = v27[v28 + 38]; if ( v69 == 0x63 ) { v70 = v27[v28 + 39]; if ( v70 == 0x25 ) { v71 = v27[v28 + 40]; if ( v71 == 0x6E ) { v72 = v27[v28 + 41]; if ( v72 == 0x63 ) { v73 = v27[v28 + 42]; if ( v73 == 0x25 ) { v74 = v27[v28 + 43]; if ( v74 == 0x6E ) { v75 = v27[v28 + 44]; if ( v75 == 0x63 ) { v76 = v27[v28 + 45]; if ( v76 == 0x25 ) { v77 = v27[v28 + 46]; if ( v77 == 0x6E ) { v78 = v27[v28 + 47]; if ( v78 == 0x63 ) { v79 = v27[v28 + 48]; if ( v79 == 0x25 ) { v80 = v27[v28 + 49]; if ( v80 == 0x6E ) { v81 = v27[v28 + 50]; if ( v81 == 0x63 ) { v82 = v27[v28 + 51]; if ( v82 == 0x25 ) { v83 = v27[v28 + 52]; if ( v83 == 0x6E ) { v84 = v27[v28 + 53]; if ( v84 == 0x63 ) { v85 = v27[v28 + 54]; if ( v85 == 0x25 ) { v86 = v27[v28 + 55]; if ( v86 == 0x6E ) { v87 = v27[v28 + 56]; if ( v87 == 0x63 ) { v88 = v27[v28 + 57]; if ( v88 == 0x25 ) { v89 = v27[v28 + 58]; if ( v89 == 0x6E ) { v90 = v27[v28 + 59]; if ( v90 == 0x63 ) { v91 = v27[v28 + 60]; if ( v91 == 0x25 ) { v92 = v27[v28 + 61]; if ( v92 == 0x6E ) { v93 = v27[v28 + 62]; if ( v93 == 0x63 ) { v94 = v27[v28 + 63]; if ( v94 == 0x25 ) { v95 = v27[v28 + 64]; if ( v95 == 0x6E ) { v96 = v27[v28 + 65]; if ( v96 == 0x63 ) { v97 = v27[v28 + 66]; if ( v97 == 0x25 ) { v98 = v27[v28 + 67]; if ( v98 == 0x6E ) { v99 = v27[v28 + 68]; if ( v99 == 0x63 ) { v100 = v27[v28 + 69]; if ( v100 == 0x25 ) { v101 = v27[v28 + 70]; if ( v101 == 0x6E ) { v102 = v27[v28 + 71]; if ( v102 == 0x63 ) { v103 = v27[v28 + 72]; if ( v103 == 0x25 ) { v104 = v27[v28 + 73]; if ( v104 == 0x6E ) { v105 = v27[v28 + 74]; if ( v105 == 0x63 ) { v106 = v27[v28 + 75]; if ( v106 == 0x25 ) { v107 = v27[v28 + 76]; if ( v107 == 0x6E ) { v108 = v27[v28 + 77]; if ( v108 == 0x63 ) { v109 = v27[v28 + 78]; if ( v109 == 0x25 ) { v110 = v27[v28 + 79]; if ( v110 == 0x6E ) { v111 = v27[v28 + 80]; if ( v111 == 0x63 ) { v112 = v27[v28 + 81]; if ( v112 == 0x25 ) { v113 = v27[v28 + 82]; if ( v113 == 0x6E ) { v114 = v27[v28 + 83]; if ( v114 == 0x63 ) { v115 = v27[v28 + 84]; if ( v115 == 0x25 ) { v116 = v27[v28 + 85]; if ( v116 == 0x6E ) { v117 = v27[v28 + 86]; if ( v117 == 0x63 ) { v118 = v27[v28 + 87]; if ( v118 == 0x25 ) { v119 = v27[v28 + 88]; if ( v119 == 0x6E ) { v120 = v27[v28 + 89]; if ( v120 == 0x63 ) { v121 = v27[v28 + 90]; if ( v121 == 0x25 ) { v122 = v27[v28 + 91]; if ( v122 == 0x6E ) { v123 = v27[v28 + 92]; if ( v123 == 0x63 ) { v124 = v27[v28 + 93]; if ( v124 == 0x25 ) { v125 = v27[v28 + 94]; if ( v125 == 0x6E ) { v126 = v27[v28 + 95]; if ( v126 == 0x63 ) { v127 = v27[v28 + 96]; if ( v127 == 0x25 ) { v128 = v27[v28 + 97]; if ( v128 == 0x6E ) { v129 = v27[v28 + 98]; if (