yecarrillo

D-Link DSL-2730E Resource Overwrite

Mar 19th, 2020
596
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function createTable()
  2. {
  3.     var Num = (G_RPath[pathIndex] || ',,0').split(',')[2];
  4.     Num = Number(Num);
  5.     var array_remote = [];
  6.     var array_lan = [];
  7.     var _lenth = G_LgAccessCtrl.length;
  8.  
  9.     if($('SELECT_ConnList').value == "LAN")
  10.     {
  11.  
  12.         for(var j = 0; j < _lenth; j++){
  13.            
  14.             if (G_LgAccessCtrl[j][0] == 'SNMP' )
  15.                 continue;
  16.            
  17.            
  18.             if(G_LgAccessCtrl[j][0] == 'PRINTER')
  19.                 continue;
  20.            
  21.            
  22.             array_lan[j] = [];
  23.             array_lan[j].push(G_LgAccessCtrl[j][0]);
  24.             array_lan[j].push('<input type="checkbox" id="Enable_LAN' + j + '" ' + (G_LgAccessCtrl[j][1] == '1' ? 'checked' : '') + ' style="width:100px">'); //Enable
  25.             if(G_LgAccessCtrl[j][0] == 'ICMP' || G_LgAccessCtrl[j][0] == 'DNS' || G_LgAccessCtrl[j][0] == 'TR069'){
  26.                     array_lan[j].push('<input type="input" id="Enable_WANIP_' + j + '" value="'+G_LgAccessCtrl[j][2] + '" size=7 maxlength=96 style="width:80px">&nbsp;/&nbsp;'  +
  27.                         '<input type="input" id="Enable_WANMask_' + j + '" value="'+G_LgAccessCtrl[j][3] + '" size=7 maxlength=96 style="width:80px">&nbsp;&nbsp;:&nbsp;&nbsp;'  +
  28.                         '<input type="input" id="Enable_WANPort_' + j+ '" value="'+G_LgAccessCtrl[j][6] + '" size=7 maxlength=5 style="width:40px">'); //WAN Destination Port
  29.             }else{
  30.                 array_lan[j].push('<input type="input" id="Enable_WANIP_' + j+ '" value="'+G_LgAccessCtrl[j][2] + '" size=7 maxlength=96 style="width:80px">&nbsp;/&nbsp;'  +
  31.                         '<input type="input" id="Enable_WANMask_' + j + '" value="'+G_LgAccessCtrl[j][3] + '" size=7 maxlength=96 style="width:80px">&nbsp;&nbsp;:&nbsp;&nbsp;'  +
  32.                     '<input type="input" id="Enable_WANPort_' + j + '" value="'+G_LgAccessCtrl[j][6] + '" size=7 maxlength=5 style="width:40px">'); //WAN Destination Port
  33.             }
  34.         }
  35.    
  36.  
  37.         $T('td_vlan',array_lan);
  38.     }
  39.     else
  40.     {
  41.         for(var i = 0, k; i < Num; i++)
  42.         {
  43.             //lyl remove ssh and snmp becasuse ssh we do not support, snmp is always allowed
  44.            
  45.             if (G_RgAccessCtrl[i][0] == 'SNMP' )
  46.                 continue;
  47.            
  48.            
  49.             if(G_RgAccessCtrl[i][0] == 'PRINTER')
  50.                 continue;
  51.            
  52.            
  53.             if(G_RgAccessCtrl[i][0] == 'DNS')
  54.                 continue;
  55.             k = i + pathIndex*Num; //找对应的实例,这个地方非常重要   
  56.             array_remote[i] = [];
  57.             array_remote[i].push(G_RgAccessCtrl[k][0]); //Name
  58.  
  59.             if(Num != 0)
  60.             {
  61.                 array_remote[i].push('<input type="checkbox" id="Enable_' + i + '" ' + (G_RgAccessCtrl[k][1] == '1' ? 'checked' : '') + ' style="width:100px">'); //Enable
  62.                 if(G_RgAccessCtrl[k][0] == 'ICMP' || G_RgAccessCtrl[k][0] == 'DNS' || G_RgAccessCtrl[k][0] == 'TR069'){
  63.                     array_remote[i].push('<input type="input" id="Enable_WANIP_' + i + '" value="'+G_RgAccessCtrl[k][2] + '" size=7 maxlength=256 style="width:80px">&nbsp;/&nbsp;'  +
  64.                         '<input type="input" id="Enable_WANMask_' + i + '" value="'+G_RgAccessCtrl[k][3] + '" size=7 maxlength=256 style="width:80px">&nbsp;&nbsp;:&nbsp;&nbsp;'  +
  65.                         '<input type="input" id="Enable_WANPort_' + i + '" value="'+G_RgAccessCtrl[k][6] + '" size=7 maxlength=5 style="width:40px" disabled=true>'); //WAN Destination Port
  66.                 }else{
  67.                 array_remote[i].push('<input type="input" id="Enable_WANIP_' + i + '" value="'+G_RgAccessCtrl[k][2] + '" size=7 maxlength=256 style="width:80px">&nbsp;/&nbsp;'  +
  68.                         '<input type="input" id="Enable_WANMask_' + i + '" value="'+G_RgAccessCtrl[k][3] + '" size=7 maxlength=256 style="width:80px">&nbsp;&nbsp;:&nbsp;&nbsp;'  +
  69.                     '<input type="input" id="Enable_WANPort_' + i + '" value="'+G_RgAccessCtrl[k][6] + '" size=7 maxlength=5 style="width:40px">'); //WAN Destination Port
  70.                 }
  71.             }
  72.            
  73.         }
  74.     $T('td_vlan',array_remote);
  75.     }
  76. }
  77.  
  78. function uiSubmit()
  79. {
  80.     var local_selectedIndex = $('SELECT_ConnList').selectedIndex;
  81.     if (local_selectedIndex > -1)
  82.     {
  83.         selectedIndex = local_selectedIndex;
  84.     }
  85.  
  86.     if(G_RPath.length > 0 && $('SELECT_ConnList').value != 'LAN')
  87.     {
  88.         pathIndex = getSelectedWan();
  89.         var _split = G_RPath[pathIndex].split(',');
  90.         var _len = Number(_split[2]);
  91.         var localPath = ':InternetGatewayDevice.X_TWSZ-COM_ACL.RACL.' + _split[1] + '.Service.';
  92.         var Accessport;
  93.         var AccessIP;
  94.         var AccessMask;
  95.         for(var i = 0, _node; i < _len; i++)
  96.         {
  97.            
  98.             if (G_RgAccessCtrl[i][0] == 'SNMP' )
  99.                 continue;
  100.            
  101.            
  102.             if(G_RgAccessCtrl[i][0] == 'PRINTER')
  103.                 continue;
  104.            
  105.            
  106.             if(G_RgAccessCtrl[i][0] == 'DNS')
  107.                 continue;
  108.             _node = $('Enable_' + i);
  109.             Accessport = $('Enable_WANPort_' + i);
  110.            
  111.             //生成表单
  112.             $F(localPath + (i + 1) + '.Enable',_node.checked ? 1 : 0);
  113.             $F(localPath + (i + 1) + '.ExternalPort', Accessport.value);
  114.            
  115.             for(var j=0;j<k;j++)
  116.             {
  117.                 if(G_PortMapping[j][4] == $('SELECT_ConnList').value)
  118.                 {
  119.                     if(G_PortMapping[j][0] == '1')
  120.                     {
  121.                         if(parseInt(G_PortMapping[j][2]) <= parseInt(Accessport.value)
  122.                         && parseInt(G_PortMapping[j][3]) >= parseInt(Accessport.value)
  123.                         && G_RgAccessCtrl[i][4].toUpperCase() == G_PortMapping[j][1].toUpperCase())
  124.                         {
  125.                             alert("The port "+ Accessport.value +" is occupied by portmapping, please use other port!");
  126.                             return false;
  127.                         }
  128.                     }
  129.                 }
  130.             }
  131.             AccessTemp = $('Enable_WANIP_' + i).value.split('/');
  132.             AccessIP = $('Enable_WANIP_' + i).value;
  133.             AccessMask = $('Enable_WANMask_' + i).value;
  134.            
  135.             $F(localPath + (i + 1) + '.SrcIP',AccessIP);
  136.             $F(localPath + (i + 1) + '.SrcMask', AccessMask);
  137.         }
  138.         $H({
  139.             'var:menu'  :'maintenance',
  140.             'var:page'  :'accessctrl',
  141.             'var:subpage':'services',
  142.             'getpage'   :'html/index.html',
  143.             'errorpage' :'html/index.html',
  144.             'obj-action':'set',
  145.             'var:pathIndex':pathIndex,
  146.             'var:selectedIndex':selectedIndex,
  147.             'var:errorpage':'services',
  148.             'var:CacheLastData': ViewState.Save()
  149.         });
  150.        
  151.         $('uiPostForm').submit();
  152.     }
  153.    
  154.     if($('SELECT_ConnList').value == 'LAN')
  155.     {
  156.         var LAN_len = Number(G_Number);
  157.         var Accessport;
  158.         var AccessIP;
  159.         var AccessMask;
  160.         var LANlocalPath = ':InternetGatewayDevice.X_TWSZ-COM_ACL.LACL.1.Service.';
  161.    
  162.         for(var i = 0, LAN_node; i < LAN_len; i++)
  163.         {
  164.            
  165.             if (G_LgAccessCtrl[i][0] == 'SNMP' )
  166.                 continue;
  167.            
  168.            
  169.             if(G_LgAccessCtrl[i][0] == 'PRINTER')
  170.                 continue;
  171.            
  172.            
  173.             LAN_node = $('Enable_LAN' + i);
  174.             Accessport = $('Enable_WANPort_' + i);
  175.            
  176.             AccessIP = $('Enable_WANIP_' + i).value;
  177.             AccessMask = $('Enable_WANMask_' + i).value;
  178.  
  179.             //生成表单
  180.             if(G_LgAccessCtrl[i][0] == "HTTP" && LAN_node.checked == 0){
  181.                 if(!confirm("If you close HTTP service, when you restart after two minutes,you will not be able to login again, are you sure?")){
  182.                     return ;
  183.                 }  
  184.             }
  185.            
  186.             $F(LANlocalPath + (i + 1) + '.Enable',LAN_node.checked ? 1 : 0);
  187.             $F(LANlocalPath + (i + 1) + '.ExternalPort', Accessport.value);
  188.            
  189.             $F(LANlocalPath + (i + 1) + '.SrcIP',AccessIP);
  190.             $F(LANlocalPath + (i + 1) + '.SrcMask', AccessMask);
  191.  
  192.         }
  193.         $H({
  194.             'var:menu'  :'maintenance',
  195.             'var:page'  :'accessctrl',
  196.             'var:subpage':'services',
  197.             'getpage'   :'html/index.html',
  198.             'errorpage' :'html/index.html',
  199.             'obj-action':'set',
  200.             'var:selectedIndex':selectedIndex,
  201.             'var:errorpage':'services',
  202.             'var:CacheLastData': ViewState.Save()
  203.         });
  204.        
  205.         $('uiPostForm').submit();
  206.     }
  207.  
  208. }
Add Comment
Please, Sign In to add comment