<!DOCTYPE html>
<html lang="en-US">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0" />
<style type="text/css">
body {
background-color: lightblue;
}
td {
text-align: left;
vertical-align: bottom;
}
input, textarea {
-webkit-appearance: none;
-webkit-border-radius: 0;
}
button {
-webkit-border-radius: 0;
width: 150px;
height: 36px
}
</style>
<title>ADAM-6200 Web Login</title>
</head>
<body>
<center>
<table border="0" width="300px">
<tr bgcolor="#7FFFD1">
<th colspan="2">ADAM-6200 Web</th>
</tr>
<tr>
<td>Account:</td>
<td><input type="text" id="ACT0" size="24"></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" id="PWD0" size="24"></td>
</tr>
<tr bgcolor="#7FFFD1">
<th colspan="2"><button id="APY0" onclick="CheckSubmit()"><font face="arial" size="4">Login</font></button></th>
</tr>
</table>
</center>
<form action="login.cgi" name="loginform" method="POST">
<input type="hidden" name="seeddata" value="939B4BE6">
<input type="hidden" name="authdata">
</form>
</body>
</html>
<script>var CryptoJS=CryptoJS||function(o,q){var l={},m=l.lib={},n=m.Base=function(){function a(){}return{extend:function(e){a.prototype=this;var c=new a;e&&c.mixIn(e);c.$super=this;return c},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var c in a)a.hasOwnProperty(c)&&(this[c]=a[c]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.$super.extend(this)}}}(),j=m.WordArray=n.extend({init:function(a,e){a=this.words=a||[];this.sigBytes=e!=q?e:4*a.length},toString:function(a){return(a||r).stringify(this)},concat:function(a){var e=this.words,c=a.words,d=this.sigBytes,a=a.sigBytes;this.clamp();if(d%4)for(var b=0;b<a;b++)e[d+b>>>2]|=(c[b>>>2]>>>24-8*(b%4)&255)<<24-8*((d+b)%4);else if(65535<c.length)for(b=0;b<a;b+=4)e[d+b>>>2]=c[b>>>2];else e.push.apply(e,c);this.sigBytes+=a;return this},clamp:function(){var a=this.words,e=this.sigBytes;a[e>>>2]&=4294967295<<32-8*(e%4);a.length=o.ceil(e/4)},clone:function(){var a=n.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var e=[],c=0;c<a;c+=4)e.push(4294967296*o.random()|0);return j.create(e,a)}}),k=l.enc={},r=k.Hex={stringify:function(a){for(var e=a.words,a=a.sigBytes,c=[],d=0;d<a;d++){var b=e[d>>>2]>>>24-8*(d%4)&255;c.push((b>>>4).toString(16));c.push((b&15).toString(16))}return c.join("")},parse:function(a){for(var b=a.length,c=[],d=0;d<b;d+=2)c[d>>>3]|=parseInt(a.substr(d,2),16)<<24-4*(d%8);return j.create(c,b/2)}},p=k.Latin1={stringify:function(a){for(var b=a.words,a=a.sigBytes,c=[],d=0;d<a;d++)c.push(String.fromCharCode(b[d>>>2]>>>24-8*(d%4)&255));return c.join("")},parse:function(a){for(var b=a.length,c=[],d=0;d<b;d++)c[d>>>2]|=(a.charCodeAt(d)&255)<<24-8*(d%4);return j.create(c,b)}},h=k.Utf8={stringify:function(a){try{return decodeURIComponent(escape(p.stringify(a)))}catch(b){throw Error("Malformed UTF-8 data");}},parse:function(a){return p.parse(unescape(encodeURIComponent(a)))}},b=m.BufferedBlockAlgorithm=n.extend({reset:function(){this._data=j.create();this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=h.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var b=this._data,c=b.words,d=b.sigBytes,f=this.blockSize,i=d/(4*f),i=a?o.ceil(i):o.max((i|0)-this._minBufferSize,0),a=i*f,d=o.min(4*a,d);if(a){for(var h=0;h<a;h+=f)this._doProcessBlock(c,h);h=c.splice(0,a);b.sigBytes-=d}return j.create(h,d)},clone:function(){var a=n.clone.call(this);a._data=this._data.clone();return a},_minBufferSize:0});m.Hasher=b.extend({init:function(){this.reset()},reset:function(){b.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);this._doFinalize();return this._hash},clone:function(){var a=b.clone.call(this);a._hash=this._hash.clone();return a},blockSize:16,_createHelper:function(a){return function(b,c){return a.create(c).finalize(b)}},_createHmacHelper:function(a){return function(b,c){return f.HMAC.create(a,c).finalize(b)}}});var f=l.algo={};return l}(Math);(function(o){function q(b,f,a,e,c,d,g){b=b+(f&a|~f&e)+c+g;return(b<<d|b>>>32-d)+f}function l(b,f,a,e,c,d,g){b=b+(f&e|a&~e)+c+g;return(b<<d|b>>>32-d)+f}function m(b,f,a,e,c,d,g){b=b+(f^a^e)+c+g;return(b<<d|b>>>32-d)+f}function n(b,f,a,e,c,d,g){b=b+(a^(f|~e))+c+g;return(b<<d|b>>>32-d)+f}var j=CryptoJS,k=j.lib,r=k.WordArray,k=k.Hasher,p=j.algo,h=[];(function(){for(var b=0;64>b;b++)h[b]=4294967296*o.abs(o.sin(b+1))|0})();p=p.MD5=k.extend({_doReset:function(){this._hash=r.create([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(b,f){for(var a=0;16>a;a++){var e=f+a,c=b[e];b[e]=(c<<8|c>>>24)&16711935|(c<<24|c>>>8)&4278255360}for(var e=this._hash.words,c=e[0],d=e[1],g=e[2],i=e[3],a=0;64>a;a+=4)16>a?(c=q(c,d,g,i,b[f+a],7,h[a]),i=q(i,c,d,g,b[f+a+1],12,h[a+1]),g=q(g,i,c,d,b[f+a+2],17,h[a+2]),d=q(d,g,i,c,b[f+a+3],22,h[a+3])):32>a?(c=l(c,d,g,i,b[f+(a+1)%16],5,h[a]),i=l(i,c,d,g,b[f+(a+6)%16],9,h[a+1]),g=l(g,i,c,d,b[f+(a+11)%16],14,h[a+2]),d=l(d,g,i,c,b[f+a%16],20,h[a+3])):48>a?(c=m(c,d,g,i,b[f+(3*a+5)%16],4,h[a]),i=m(i,c,d,g,b[f+(3*a+8)%16],11,h[a+1]),g=m(g,i,c,d,b[f+(3*a+11)%16],16,h[a+2]),d=m(d,g,i,c,b[f+(3*a+14)%16],23,h[a+3])):(c=n(c,d,g,i,b[f+3*a%16],6,h[a]),i=n(i,c,d,g,b[f+(3*a+7)%16],10,h[a+1]),g=n(g,i,c,d,b[f+(3*a+14)%16],15,h[a+2]),d=n(d,g,i,c,b[f+(3*a+5)%16],21,h[a+3]));e[0]=e[0]+c|0;e[1]=e[1]+d|0;e[2]=e[2]+g|0;e[3]=e[3]+i|0},_doFinalize:function(){var b=this._data,f=b.words,a=8*this._nDataBytes,e=8*b.sigBytes;f[e>>>5]|=128<<24-e%32;f[(e+64>>>9<<4)+14]=(a<<8|a>>>24)&16711935|(a<<24|a>>>8)&4278255360;b.sigBytes=4*(f.length+1);this._process();b=this._hash.words;for(f=0;4>f;f++)a=b[f],b[f]=(a<<8|a>>>24)&16711935|(a<<24|a>>>8)&4278255360}});j.MD5=k._createHelper(p);j.HmacMD5=k._createHmacHelper(p)})(Math);
function CheckSubmit(){
var oridata;
if (document.getElementById("ACT0").value == "")
{
alert("Please input Account!");
document.getElementById("ACT0").focus();
return;
}
if (document.getElementById("PWD0").value == "")
{
alert("Please input Password!");
document.getElementById("PWD0").focus();
return;
}
oridata = document.loginform.seeddata.value + ":" + document.getElementById("ACT0").value + ":" + document.getElementById("PWD0").value;
document.loginform.authdata.value = CryptoJS.MD5(oridata);
document.loginform.submit();
}
</script>Bu sayfaya curl ile nasıl login olabilirim? Bu konuda bir örnek gösterebilir misiniz?
cihaz kontrol paneli curl login
8
●426
- 15-01-2014, 16:12:36Kullandığım bir cihaza url yolu ile komut göndererek istediğim şekilde çalıştırabiliyorum. Fakat bu komutu verecek olan url yi kendi yazılımımdan göndereceğim için cihazın kontrol panelinde önce login olmam gerekiyor. Benim de aklıma curl geldi fakat curl ile ilgili herhangi bir fikre sahip olmadığım için burada konu açayım dedim. Öncelikle cihazın kontrol panelinde var olan login sayfasının kaynak kodu şu şekilde.
- 15-01-2014, 16:24:08Cihazın dosyalarına erişme gibi bir durum olsa login panelini tamamiyle ortadan kaldıracağım ama öyle bir imkanım yok. Üretici firmaya konu ile ilgili mail attım ama ne zaman dönüş yaparlar ve çözüm sunarlar mı sunmazlar mı belli değil ve benim bunu acil olarak yapmam gerekiyor.PsdBul adlı üyeden alıntı: mesajı görüntüle
- 15-01-2014, 16:29:35Peki bunun için yöntem ne olmalıdır? Ne ile yapabilirim?Codemaker adlı üyeden alıntı: mesajı görüntüle
- 15-01-2014, 17:20:30Neden curl ile olmazmış?loc adlı üyeden alıntı: mesajı görüntüle
javascript fonksiyonunun yaptığını çözüp php ye yaptırdınız mı sorun olmaz bence.
Şu şekilde login olunuyor.
checksubmit javascript fonksiyonu username ve passwordü alıyor
form içindeki seeddata verisi ile birlikte md5 e sokuyor. ortaya çıkan md5'i de
authdata değeri olarak login.cgi dosyasına gönderiyor.
curl ile login.cgi dosyasına formu şu şekilde submit etmen lazım
<form action="login.cgi" name="loginform" method="POST">
<input type="hidden" name="seeddata" value="939B4BE6">
<input type="hidden" name="authdata" value="<?php md5('939B4BE6'.'kullanıcı_adı'.':'.'parola');?> ">
</form>
//Önce seeddata değerini almak için session ile cookie oluşturup sayfayı çağırmak lazım $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_HEADER,0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch,CURLOPT_AUTOREFERER,1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . "/cookies.txt"); curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . "/cookies.txt"); curl_setopt( $ch, CURLOPT_COOKIESESSION, true ); $result = curl_exec($ch); //result içinden gelen seeddata değerini alıp yine aynı cookie dosyası ile şu şekilde post etmek lazım $post= array( 'loginform' => '', 'seeddata' => '939B4BE6', 'authdata' => md5('939B4BE6'.'kullanıcı_adı'.':'.'parola') ); curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_POSTFIELDS, $post);javascript dosyasının yaptığı seeddata nın value değeri, admin kullanıcı adı ve parolayı aralarına iki nokta üst üste koyarak md5 hash haline getirip authdata inputuna value olarak atayarak login.cgi a göndermek. - 15-01-2014, 20:55:28Malesef cihaz yerel ağda. Dışarıyla herhangi bir bağlantısı yok.CryTurk adlı üyeden alıntı: mesajı görüntüle