webhacking/client 28

HACKER FACTORY 초급 1~8

http://www.hackerfactory.co.kr/ level 1,2,3 : 프록시로 전달되는 값을 잘 바꾸면 된다. 너무 간단해서 설명이 필요 없다. level 4 : 파일 다운로드 취약점인데 ../가 필터링되있다. 단순히 ../는 한번만 지워주는거 같으므로....//....//....//....//....//....//....//....//....//....//....//....//....//....//....//temp/hacktory.txt 경로를다운받으면 된다. level 5 : 글을 읽으려고 하면 막혀있는듯 싶으나 단순히 history.back(-1);로 앞페이지로 되돌려보낸다.그러니 프록시로 history.back(-1);라인만 지우고 소스코드를 살펴보면 Utill.js라는 js 소스파..

webhacking/client 2015.07.31

hackthis Intermediate 1~5, main

Intermediate1.https://www.hackthis.co.uk/levels/intermediate/1?password=flubergump 2. # -*- encoding: cp949 -*- import urllib2 print urllib2.urlopen(urllib2.Request('https://www.hackthis.co.uk/levels/intermediate/2','password=flubergump',headers={'cookie':'PHPSESSID=od5o6n8f46ku2rsngtdg8h0tp3'})).read() 3.쿠키값 restricted_login=true 4. 5.??아이피 주소를 바꿔서 들어가는 문제? 인 것 같다. 학교에서 하고있는데 그냥 아무거나 입력해서 실패 후,..

webhacking/client 2015.03.19

webhacking.kr 34, packer

소스보기로 보면 일반적인 암호화된 소스밖에 안보인다. 그런데 크롬 개발자도구를 이용해서 보면..? 맨 아래에 Passw0RRdd.pww 가 보인다. 패킹 도구중 하나로 p.a.c.k.e.r이란게 있다. 코드쉘에서 하나 가져왔다. eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]..

webhacking/client 2015.03.13

hackthis javascript 1~5

level 1.아무거나 입력하면 incorrect라고 나오는데 이걸 이용해서 자바스크립트 위치를 찾아보자. 라는걸 찾긴 찾았는데 correct라는게 안보인다. 찾아보자. 맨 아래에 라고 있다. level 2.level 1과 똑같은데 length를 찾아보면. 라고 있다. 콘솔에서 돌려보면 9가 나오고 비밀번호 길이를 아무거나 9자리 입력해주면 통과한다. levle 3.조금 걸릴 뻔 했다. var thecode = 'code123'; 라고 바로 그냥 써있어서 입력했는데 나오질 않았다. 그럼 또 js파일을 만들어서 어딘가에 thecode변수를 변경해놓았다는 소리인데..... 나같은 경우 The password is: smellthecheese라고 적혀있다.. level 5.자바스크립트를 끄고 페이지 소스를 보..

webhacking/client 2015.02.12

happy-security.de javascript 1~7,9,10

http://www.happy-security.de/index.php 아니 여기는 독일어로 되있고, 정보를 제대로 입력해도 가입하기가 힘들다. 가입시 필수 정보처럼 보이는 앞에 *가 있는것만 입력하면 되고, 이메일을 받아서 그 링크로 들어간 후 비밀번호 재설정을 하니까 로그인이 된다. 근데 비밀번호 재설정을 안해도 될거 같긴 한데 독일어를 몰라서 방법을 모르겠음. 가입부터 짜증 1. 와 사이에 문제가 있다. 234+234라는 문자열과 같으면 통과. 순간 헷갈려서 어버버하며 468, 234234등을 입력해봤지만..... '234+234'라는 문자열 자체와 같으면 통과므로 234+234를 입력하면 된다. 2. http://www.happy-security.de/javascript.2.1 라는 곳에 소스가 있..

webhacking/client 2015.01.22

hack this site JavaScript 1~7

1. 소스보기하면. cookies 2. 자바스크립트를 끄고 들어가면 됨. 크롬같은경우 크롬 설정에 콘텐츠설정에 있음. 3. var foo = 5 + 6 * 7 var bar = foo % 8var moo = bar * 2이고 moo의 길이와 내가 입력한 글자의 길이가 같아야된다. moo=14이므로 14글자 아무거나 입력 4. 뭔가 있어보이지만 결국은 moo를 입력하면 통과. 5. unescape('%69%6C%6F%76%65%6D%6F%6F'); 를 해석하면 됨.ilovemoo 6. 소스를 잘보면 https://www.hackthissite.org/missions/javascript/6/checkpass 를 참조해서 실행함. moo pwns가 답... 7. 윗부분 var _0x4e9d=["\x66\x72..

webhacking/client 2015.01.20

webhacking.kr 10,14,15,16,17,20,23,24

10.개발자 도구로 들어가서 left속성을 799로 만들어준 후 한번 더 클릭하면 클리어. 크롬에서 안될수도 있는데 IE로 하면 된다.(IE도 F12누르면 동일하게 개발자도구 나옴.) 14.에서var ul=document.URL;ul=ul.indexOf(".kr");ul=ul*30;부분만 콘솔에 넣고 돌려보면 ul=510이 나옴. 입력하면 답 출력. 15.view-source:http://webhacking.kr/challenge/javascript/js2.html로 보거나 자바스크립트 끄기. 16. document.body.innerHTML+="*";function mv(cd){kk(star.style.posLeft-50,star.style.posTop-50);if(cd==100) star.style...

webhacking/client 2015.01.08

Security Override Javascript 1~8

level 1.자바스크립트 사용 안하게 하면 된다. level 2.라고 소스에 있다. level 3.if (password=='4D3dchfa') {window.location.href=''+password+'.php';}라고 소스에 있다... level 4.var pass1= '4';var pass2= '2168827.25';password=prompt('Please enter the Password!','');if (password==pass1*pass2) {window.location.href=password+'.php';라고 소스에 있다.. 8675309 level 5.var pass1= '451';var pass2= '502181';var pass3= pass1*pass2;var pass4= p..

webhacking/client 2014.12.19

Net-Force javascript 7

들어가보면 폼이 있는데 비밀번호하나밖에 입력할 수가 없다. 일단 소스를 보면 unescape관련된 코드가 있는데 자세히 살펴보면 뒤에서 한번더 unescape를 한다. 일단 이상한 변수 d가 있는데 d가 언젠가 쓰일지도 모르므로 개발자도구로 d를 정의해두고 unescape를 두번 한다. 그러면 또다른 자바스크립트 코드가 나오는데 여기서 맨 마지막에 s를 출력하는 것으로 보아 s변수에 뭔가 있을것같다. s를 출력해보면 또다른 코드가 나온다. 중요한 부분은 네모상자쳐놓은 부분이다. 첫번째 상자부분은 우리가 처음 들어갔을때 보이는 폼 부분이다. 폼의 이름은 passwordform이며, 특이점은 username이라는 변수를 히든 타입으로 설정하고 기본 이름이 default이다. 우리가 입력한 부분은 이름이 pa..

webhacking/client 2014.12.04

Net-Force javascript 6

6. html가디언이 있다고 하는데 소스를 보면 자바스크립트가 두부분 나온다. 처음의 뭔가 인코딩되보이는 var~로 시작되는부분과 eval(unescape로 시작되는 부분으로 나눌수 있는데, 앞의 부분은 일단 놔두고, 뒤의 unescape로 디코딩하고 eval로 디코딩된 코드를 실행한다. 일단 unescape부분을 개발자콘솔에서 돌려보면. 또다른 자바스크립트가 나오는데 그 자바스크립트를 돌리려고 하면 변수 fw가 정의가 되어있지 않다고 나온다. fw는 위의 var~ 부분에 정의된것일것이다. 그럼 콘솔에서 해당 변수를 인식시키기 위해 윗부분을 한번 돌리고, 그다음에 unescape부분을 돌려보았다. 뭐 이런식으로 나오는데 끝부분의 오류메시지를 보면 보안설정때문에 inline 스크립트가 실행이 거부되었다 정..

webhacking/client 2014.12.04

Net-Force javascript 1~5

1. view-source:http://www.net-force.nl/challenge/level101/secret.html kiddie, javascript 2. 끝부분에 출력해 보면 된다. 3. 개발자콘솔. user, member 4. 주석을 보면 라는 계정이 있는데 이 계정은 낚시다. 틀린게 아니면 location = user.toLowerCase() + "/" + pass.toLowerCase() + ".html"; 로 이동하는데 또 이걸 다 계산해서 /soulslayer/2aBl6E94IuUfo.html 로 가보면 또 낚시다. /soulslayer까지만 입력해보면 디렉터리 리스팅으로 페이지 목록이 보인다. 5. IE로 들어와야 볼수있을거라고 하지만 크롬도 별 차이가 없는것같다. 소스를 잘 보면 ..

webhacking/client 2014.12.03

Enigma Group basic/javascript 9

난이도가 조금 올라감. 폼에 입력한 비밀번호가 함수 내에서 쓰이기 때문에 단순히 끝에 alert같은걸로 pass를 출력하는게 되지 않는다; 예를 들어보면 var a="abcde";var b="abedf";var c="abefd";라 하면 첫번째 인덱스에서 셋다 a이므로 이자리는 그냥 넘어간다. 그렇지만 var a="abcde";var b="abedf";var c="gbefd"; 이렇게 첫번째 인덱스의 두개가 a이면(var a,b가 'a'인데 다른변수 두개가 'a'여도 된다.) 그걸 비밀번호의 인덱스와 비교한다. 예로 비밀번호가 "abcd"라고 하면 첫번째 자리는 a가 맞는거. 비밀번호의 인덱스는 변수의 인덱스와 따로 증가한다.(비밀번호는 변수 길이보다 짧음.) 이런식으로 비교해보면 된다. 파이썬. imp..

webhacking/client 2014.11.01

Enigma Group basic/javascript 1~8

외국사이트 http://www.enigmagroup.org/ 의 문제. basic카테고리에 들어가면 여러가지가 있는데 그중 자바스크립트 부분. 1. Jane으로 로그인하라고 한다. 근데 Jane가 목록 상자에 없다. 목록 상자중 아무거나 하나를 크롬 개발자도구로 Jane로 바꿔서 보내면 된다. 2. 뭔가 비밀번호 치는 창이 나오는데 취소 누른다음에 소스를 보면 이리 나오는데 skriptkid가 맞으면 skriptkid.php로 이동하게 된다므로 skriptkid.php로 가면 된다. 3, 2번하고 똑같은데 소스가 아래에 있다. 아래로 주욱 내리다보면 똑같이 있다. 4. 뭔가 똑같은거 같은데 없다. 자세히 살펴보면 비밀번호 입력창을 취소를 눌렀을때 주소가 Index.php로 이동하는걸 알 수 있다. (원래..

webhacking/client 2014.11.01

suninatas level 7

http://suninatas.com/Part_one/web07/web07.asp 많이 본 버튼 빨리 누르기........ 코드를 짜면 된다. 주의사항은 패킷 몸체에 어떤 가는 값이 있는지 프록시같은걸로 확인해보고 코드를 짜야된다는거.. import urllib2 req = urllib2.Request('http://suninatas.com/Part_one/web07/web07.asp') req.add_header('cookie','ASPSESSIONIDQSTDACTR=쿠키') urllib2.urlopen(req).read() req = urllib2.Request('http://suninatas.com/Part_one/web07/web07_1.asp','web07=Do+U+Like+girls%3F') ..

webhacking/client 2014.10.30

wargame.kr fly_me_to_the_moon

일단 비행기 게임을 해보고, 제작자가 일부러 햇갈리게 하려고... 인지는 모르겠지만 항상 해왔던데로 소스를 열어봤는데 eval(function(p,a,c,k,e,d) 로 시작되는 엄청 긴 소스가 있다. 자바스크립트 문제구나. 생각하고 이쁘게 만들어서 소스를 해석해보았는데 별 정보가 없다. 계속 봐도 없다. 나중에 생각하니 p.a.c.k.e.r이게 너무 유명해서 너무 거기에 민감해진 듯 싶다. 그러다가 다시 게임을 해 봤는데 31337점이 필요하다고 한다. 점수는 뭐 내가 죽으면 보내지는거니까 점수 보내질때 변조를 해보자고 생각하고 프록시를 켜니 또 이상한것들이 잡힌다. 그건 무시하고 점수를 31337로 변조해서 보내봤는데 반응이 없다. 뭐지... 계속 하다가 프록시로 잡아서 보낼때만 token error..

webhacking/client 2014.09.29

wargame.kr QR CODE PUZZLE

들어가보면 예전에 필통으로 많이 하던 퍼즐이 나온다. 소스를 보면 jquery소스가 있다. 근데 난 jquery를 자바스크립트에서 조금 쓰기 쉽게 된 그런 언어? 라는것밖에 모른다.(방학때 공부해야겠다.) /*$(function(){ $('#join_img').attr('src',unescape('.%2f%69%6d%67%2f%71%72%2e%70%6e%67'));$('#join_img').jqPuzzle({rows:6,cols:6,shuffle:true,numbers:false,control:false,style:{overlap:false}});hide_pz();});function hide_pz(){var pz=$('#join_img div'); if(pz[pz.length-2]){$(pz[1]).r..

webhacking/client 2014.09.28

webhacking.kr 12번

크롬 개발자도구에 eval로 실행하는 부분만 빼고 돌려보면 저렇게 나옴. 대충 소스 살펴보면 아래의 if 내부의 ck가 뒤의 복잡한 부분이 맞으면 alert으로 답을 출력해주는거같음. ck는 url의 =의 위치. 뒷부분만 추려서 document.write로 화면에 출력해보면 =youaregod~~~~~~~! 출력. ck(url에서 =의 위치)와 저 문자열이 같아야 하므로 뒤에 =youaregod~~~~~~~!를 붙여주면 통과 ****** 파이썬으로 위의 악성코드 생성기를 구현해보았음.(심심해서) javascript = "alert('xss!');" strs = """""" print strs 돌려보면 로 잘 생성됨. 제대로 동작도 함..

webhacking/client 2014.08.31

webhacking.kr 5번

로그인 버튼 눌렀을시 경로/challenge/web/web-05/mem/login.php조인버튼 누르면 alert창이 뜸. 이것저것 해보다가 /challenge/web/web-05/mem/ 까지만 입력해보면디렉터리 리스팅 취약점 발견 join.php들어가서 소스코드 확인. http://jsbeautifier.org/ 에서 한번 해독해보면보기좋게 나옴. 중간즈음의 if문에서 어떤 검사를 해서 아닐시 alert으로 출력하고 history.go(-1); 로되돌다온다는걸 알수있음. 그냥 저부분은 자바스크립트이므로 우회할수 있다고 생각하고 폼 정보만살펴보면document.write('Join'); document.write('.....'); document.write(''); document.write('id')..

webhacking/client 2014.08.19

webhacking.kr 12번

소스코드보면 자바스크립트 문제. 끝에 eval함수로 암호화된 구문을 실행시킵니다. 그러면 eval로 실행시키기 이전 구문만 크롬 개발자도구에 갖다붙이면 알아서 해석해줍니다. 해석된 구문을 다시 해석해야됩니다. 맨 아래의 복잡한 if문에서 결과가 맞으면 alert로 password를출력해주세요. if부분이 중요한걸 알았으니 if부분을 출력해보면 됩니다. document.write로 직접 출력해보죠. 이렇게 if문만 document.write로 바꾸고 아래 중괄호를 없앴는데 false가 뜨네요. 내부를 자세히 살펴보니 ck==으로 비교합니다. 다르니까 false가 뜨겠죠. ck는 이따 어떻게든 바꾸기로 하고 ck를 빼고 한번 출력해보겠습니다. =youaregod~~~~~~~! 가 출력됩니다. ck가 저거랑 ..

webhacking/client 2014.08.15

webhacking.kr 1번.

1번 문제 소스입니다. 일단 eregi함수는 필터링으로 해당 문자가 있는지 확인하는 내용입니다. sql인젝션 문제에서 자주 등장하니 형태를 익혀두시는게 좋을거에요.http://c_study_s.blog.me/30133211775 참고하시기 바랍니다...첫번째 패턴 부분인 [^0-9,.]에서 ^는 제외한다는 뜻, 0-9는 0~9사이의 숫자라는 뜻.,는 0-9와 .을 구분하기 위한 ,이고 .은 임의의 한 글자를 뜻합니다.즉 [^0-9,.]은 0~9사이의 숫자를 제외한 나머지 아무 한 글자를 뜻합니다.또 $_COOKIE[]변수는 쿠키값을 뜻하고, 내부의 인자는 쿠키 이름입니다.$_COOKIE[user_lv]는 user_lv라는 이름의 쿠키가 있다고 보시면 됩니다.즉 if(eregi("[^0-9,.]",$_CO..

webhacking/client 2014.08.11

webhacking.kr 6번

http://webhacking.kr/challenge/web/web-06/index.php 참고 포스팅 : http://qkqhxla1.tistory.com/entry/md5-sha1-base64%EB%93%B1%EC%9D%98-%EC%9D%B8%EC%BD%94%EB%94%A9%EB%94%94%EC%BD%94%EB%94%A9 6번 입니다. 소스봐서 문제코드를 해독한 후 역으로 따라올라가면 답이 나올겁니다. 1. 'admin' 문자열을 20번 인코딩 2. $decode_id=str_replace("!","1",$decode_id); ~~ 등의 규칙으로 문자열을 역으로 변경. 3. user,password라는 쿠기값에다 저 값을 집어넣음. 역시 파이썬으로 아주 쉽게 가능합니다. 1번과정. import ba..

webhacking/client 2014.08.10