no image
Old - 26 (score:100)
덩그러니 소스코드게 있네요! 소스코드를 보아하니.. id라는 인자값에 "admin"이면 "no!" 출력하고 url 디코딩했을 때 admin이면 문제 풀이 성공이랍니다! admin을 넣어주니 역시는 역시나죠 :D 그럼 간단한거 아닌가요?! url 인코딩한 값을 넣어주면 되겠죠! (google에 "url 인코딩 표"를 검색하면 무수히 많이 나옵니다 ~_~) 자 이렇게 완료해서 넣어주도록 합시다! 엥!? no!!? 왜지.. 하는 순간 url을 보니까 admin으로 디코딩 되어 있음을 보았습니다! 그래서 알아본 결과.. 웹 서버와 브라우저 사이에서 데이터 교환할 때 브라우저 폼에서 입력받은 데이터를 인코딩한 값으로 php서버에 보내고 php는 받은 것을 디코딩한다네요! 그럼 인코딩한 값을 한번 더 인코딩하면 풀..
2020.02.14
no image
Old - 24 (score:100)
문제를 들어가보니 client ip와 agent 정보가 출력이 됩니다 ! 소스를 볼 수 있으니 소스를 확인해보도록 합시다 :D 소스코드를 확인해보니 ip부분에 필터링이 걸려있고 ip가 127.0.0.1이면 풀린다고하네요 :D 그래서 저는 어떻게 ip값을 바꿀까 생각하다가 쿠키값을 이용해서 바꿨습니다! 필터링이 걸려있기 때문에 우회를 하기 위해 다음과 같은 방법을 사용했습니다! 중간중간에 필터링되는 값을 넣어 127.0.0.1을 나타낼 수 있게 만든 것입니다 :D 쿠키값을 넣고 다시 새로고침해주면 이렇게 문제가 풀립니다! 이상 24번 문제 풀이였습니다 :D
2020.02.13
no image
Old - 18 (score:100)
이번에는 SQL Injection 문제네요 ㅎㅎㅎㅎ 밑에 소스코드를 볼 수 있게 해주니 클릭해서 보도록 합시다 :D 소스코드를 보아하니 몇개가 필터링 되어 있습니다. (띄워쓰기, /, (, ), |, &, select, from, 0x) 그리고 보여지는 구문은 select id from chall18 where id='guest' and no=$_GET[no](입력값) 이네요 :D solve의 조건은 id가 admin이여야 합니다! 쿼리 뒤에 admin's no=2라고 힌트가 대놓고 나와 있군요 ㅎㅎㅎ! 그래서 저는 밑의 공식을 이용하여 공격을 해보았습니다! "False and False or True" id='guest' and no=2 or no=2를 입력하여 줘야하는데 공백이 현재 필터링 되어 있으..
2020.02.12
no image
Old - 17 (score:100)
문제를 보니 입력칸이 덩그라니 있더라구요! 소스코드를 봅시다 :D 음... 아주아주 긴 식과 함께 만일 이걸 맞추면 답을 10으로 나눈 어떤 페이지로 넘어간다네요..? [F12]를 이용해서 전부 복사한 다음 계산을 했습니다! 그리고 나온 값을 입력하니.. 풀렸네요...????? 음....? =_= 이만 17번 풀이였습니다..!
2020.02.10
no image
Old - 16 (score:100)
문제로 들어가보니 달랑 저거만 있네요..?! 소스코드를 봅시다 :D 소스코드를 자세히 보니.. mv 함수 안에 여러개의 조건이 있습니다. kk(star.~) 별을 생성한다. if(cd==100) star.~ cd가 d(100)이면 오른쪽으로 이동한다. if(cd==97) star.~ cd가 a(97)이면 왼쪽으로 이동한다. if(cd==119) star.~ cd가 w(119)이면 위쪽으로 이동한다. if(cd==115) star.~ cd가 s(115)이면 아래쪽으로 이동한다. if(cd==124) location.href=String.from ~ cd가 |(124)이면 특정페이지로 이동한다. 실제로 d, a, w, s를 누르니 방향대로 별이 이동하는걸 확인할 수 있었습니다 :D 자세히 보시면 cd가 12..
2020.02.09
no image
Old - 14 (score:100)
문제로 들어가봅시다 :D 문제로 들어가보니 입력란만 덩그러니 있습니다! 일단 소스코드도 볼까요 ㅎㅎㅎ? 소스코드 보니 무언가가 있네요 :D 해석해보면 다음과 같습니다! var ul=document.URL ul 변수에 URL을 저장 ul=ul.indexOf(".kr") ul 변수에 ".kr" 문자열이 있는 위치를 ul 변수에 저장 ul=ul*30; ul 변수에 30을 곱한 후 다시 저장 if(ul==pw.input_pwd.value) {location.href ~ } ul 변수와 입력값이 같으면 location.href 로 이동 else { alert("Wrong"); } 틀리면 Wrong 문자열의 경고 메세지 출력 indexOf 함수는 해당 문자열의 위치를 저장합니다 :D (자세한 사항은 밑의 사이트에서..
2020.02.07
no image
Old - 06 (score:100)
들어가니 ID와 PW가 있고 소스코드를 볼 수 있습니다 :D 일단 소스코드를 보도록 합시다! 소스코드를 보니 Encoding 부분과 Decoding 부분이 나뉩니다! 그럼 인코딩 부분을 먼저 보도록 합시다 :D if(!$_COOKIE['user']) 쿠키에 user가 있으면 참, 없으면 거짓 $val_id="guest" val_id 변수에 guest 저장 $val_pw="123qwe" val_pw 변수에 123qwe 저장 for($i=0;$i
2020.02.03
no image
Old - 15 (score 50)
https://webhacking.kr/ Webhacking.kr Index Welcome Stranger! Notice(en) [2019-08-18] In the process of receiving service, some loss of data has been observed. For example, in very few accounts there may be a truncation of the last one letter of an userid. If userid contains multibyte characte webhacking.kr 사이트 링크입니다 :D 사이트가 새롭게 단장했군요! 바뀌기 전에 몇 문제 풀었었는데.. 아이디, 패스워드가 기억이 나질 않는군요 ㅠ_ㅠ Webhacking 문제는..
2020.01.31

 

Old 26번 문제

덩그러니 소스코드게 있네요!

소스코드

소스코드를 보아하니..

id라는 인자값에 "admin"이면 "no!" 출력하고

url 디코딩했을 때 admin이면 문제 풀이 성공이랍니다! 

admin 입력

admin을 넣어주니 역시는 역시나죠 :D

그럼 간단한거 아닌가요?!

url 인코딩한 값을 넣어주면 되겠죠!

(google에 "url 인코딩 표"를 검색하면 무수히 많이 나옵니다 ~_~)

admin url 인코딩

자 이렇게 완료해서 넣어주도록 합시다!

no!

엥!? no!!?

왜지.. 하는 순간 url을 보니까 admin으로 디코딩 되어 있음을 보았습니다!

그래서 알아본 결과..

 

웹 서버와 브라우저 사이에서 데이터 교환할 때 브라우저 폼에서 입력받은 데이터를

인코딩한 값으로 php서버에 보내고 php는 받은 것을 디코딩한다네요!

 

그럼 인코딩한 값을 한번 더 인코딩하면 풀리지 않을까요 :D?

밑의 홈페이지를 이용해서 url 인코딩을 진행해 봅시다!

https://www.url-encode-decode.com/

 

URL Encode Decode - URL Percent Encoding and Decoding.

Join to access discussion forums and premium features of the site.

www.url-encode-decode.com

인코딩

자 인코딩하면 오른쪽과 같은 값이 나옵니다!

이제 넣어보도록 합시다 :D

풀이 성공

문제가 풀렸죠 ㅎㅎㅎ?!

 

그럼 26번 문제 풀이를 마치도록하겠습니다 :D

'CTF > Webhacking.kr' 카테고리의 다른 글

Old - 39 (score:100)  (0) 2020.02.24
Old - 38 (score:100)  (0) 2020.02.23
Old - 24 (score:100)  (0) 2020.02.13
Old - 18 (score:100)  (0) 2020.02.12
Old - 17 (score:100)  (0) 2020.02.10

Old 24번 문제1

문제를 들어가보니 client ip와 agent 정보가 출력이 됩니다 !

소스를 볼 수 있으니 소스를 확인해보도록 합시다 :D

소스코드

소스코드를 확인해보니 ip부분에 필터링이 걸려있고

ip가 127.0.0.1이면 풀린다고하네요 :D

 

그래서 저는 어떻게 ip값을 바꿀까 생각하다가 쿠키값을 이용해서 바꿨습니다!

필터링이 걸려있기 때문에 우회를 하기 위해 다음과 같은 방법을 사용했습니다!

우회

중간중간에 필터링되는 값을 넣어 127.0.0.1을 나타낼 수 있게 만든 것입니다 :D

문제 풀이 성공

쿠키값을 넣고 다시 새로고침해주면 이렇게 문제가 풀립니다!

 

이상 24번 문제 풀이였습니다 :D

'CTF > Webhacking.kr' 카테고리의 다른 글

Old - 38 (score:100)  (0) 2020.02.23
Old - 26 (score:100)  (0) 2020.02.14
Old - 18 (score:100)  (0) 2020.02.12
Old - 17 (score:100)  (0) 2020.02.10
Old - 16 (score:100)  (0) 2020.02.09

Old 18번 문제

이번에는 SQL Injection 문제네요 ㅎㅎㅎㅎ

밑에 소스코드를 볼 수 있게 해주니 클릭해서 보도록 합시다 :D

소스코드

소스코드를 보아하니 몇개가 필터링 되어 있습니다.

(띄워쓰기, /, (, ), |, &, select, from, 0x)

그리고 보여지는 구문은

select id from chall18 where id='guest' and no=$_GET[no](입력값)

이네요 :D

 

solve의 조건은 id가 admin이여야 합니다!

쿼리 뒤에 admin's no=2라고 힌트가 대놓고 나와 있군요 ㅎㅎㅎ!

 

그래서 저는 밑의 공식을 이용하여 공격을 해보았습니다!

"False and False or True"

공격 형태

id='guest' and no=2 or no=2를 입력하여 줘야하는데

공백이 현재 필터링 되어 있으므로 공백은 url 인코딩문자로 %0a 우회할 수 있습니다ㅎㅎㅎㅎ

문제 풀이

이렇게 18번 문제를 해결해보았습니다 :D

'CTF > Webhacking.kr' 카테고리의 다른 글

Old - 26 (score:100)  (0) 2020.02.14
Old - 24 (score:100)  (0) 2020.02.13
Old - 17 (score:100)  (0) 2020.02.10
Old - 16 (score:100)  (0) 2020.02.09
Old - 14 (score:100)  (0) 2020.02.07

Old 17번 문제

문제를 보니 입력칸이 덩그라니 있더라구요!

소스코드를 봅시다 :D

소스코드

음... 아주아주 긴 식과 함께 만일 이걸 맞추면 답을 10으로 나눈 어떤 페이지로 넘어간다네요..?

F12

[F12]를 이용해서 전부 복사한 다음 계산을 했습니다!

그리고 나온 값을 입력하니..

정답

풀렸네요...?????

음....? =_=

 

이만 17번 풀이였습니다..!

'CTF > Webhacking.kr' 카테고리의 다른 글

Old - 24 (score:100)  (0) 2020.02.13
Old - 18 (score:100)  (0) 2020.02.12
Old - 16 (score:100)  (0) 2020.02.09
Old - 14 (score:100)  (0) 2020.02.07
Old - 06 (score:100)  (0) 2020.02.03

Old 16번 문제

문제로 들어가보니 달랑 저거만 있네요..?!

소스코드를 봅시다 :D

 

소스코드

소스코드를 자세히 보니..

mv 함수 안에 여러개의 조건이 있습니다.

kk(star.~) 별을 생성한다.
if(cd==100) star.~ cd가 d(100)이면 오른쪽으로 이동한다.
if(cd==97) star.~ cd가 a(97)이면 왼쪽으로 이동한다.
if(cd==119) star.~ cd가 w(119)이면 위쪽으로 이동한다.
if(cd==115) star.~ cd가 s(115)이면 아래쪽으로 이동한다.
if(cd==124) location.href=String.from ~ cd가 |(124)이면 특정페이지로 이동한다.

실제로 d, a, w, s를 누르니 방향대로 별이 이동하는걸 확인할 수 있었습니다 :D

별 이동

자세히 보시면 cd가 124일 경우 특정페이지로 이동하고 주석처리로 "do it!"이 있는거 보이시나요 :D ?

그래서 |(파이프)를 누르니 문제가 풀렸습니다!

문제 해결

너무 간단하죠 ㅎㅎㅎㅎ?!

뭔가 소스코드 해석하는 문제인가 싶네요..! :D

 

이만 16번 문제 풀이였습니다 :D

'CTF > Webhacking.kr' 카테고리의 다른 글

Old - 18 (score:100)  (0) 2020.02.12
Old - 17 (score:100)  (0) 2020.02.10
Old - 14 (score:100)  (0) 2020.02.07
Old - 06 (score:100)  (0) 2020.02.03
Old - 15 (score 50)  (0) 2020.01.31

Old 14번 문제

문제로 들어가봅시다 :D

문제로 들어가보니 입력란만 덩그러니 있습니다!

 

일단 소스코드도 볼까요 ㅎㅎㅎ?

소스코드

소스코드 보니 무언가가 있네요 :D

 

해석해보면 다음과 같습니다!

var ul=document.URL ul 변수에 URL을 저장
ul=ul.indexOf(".kr") ul 변수에 ".kr" 문자열이 있는 위치를 ul 변수에 저장
ul=ul*30; ul 변수에 30을 곱한 후 다시 저장
if(ul==pw.input_pwd.value) {location.href ~ } ul 변수와 입력값이 같으면 location.href 로 이동
else { alert("Wrong"); } 틀리면 Wrong 문자열의 경고 메세지 출력

indexOf 함수는 해당 문자열의 위치를 저장합니다 :D

(자세한 사항은 밑의 사이트에서 공부하시길 바랍니다!)

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf

 

String.prototype.indexOf()

indexOf() 메서드는 호출한 String 객체에서 주어진 값과 일치하는 첫 번째 인덱스를 반환합니다. 일치하는 값이 없으면 -1을 반환합니다.

developer.mozilla.org

ul 변수에는 "https://webhacking.kr/challenge/js-1/" 이 들어있죠!

".kr"은 위의 문자열에서 19번째 위치에 해당되있는게 보이실 겁니다 ㅎㅎㅎ

 

그럼 19가 저장이 될까요?

indexOf는 첫 위치를 0으로 인식하기때문에 18이 저장이 됩니다!

그럼 18*30 = 540 이겠죠 ㅎㅎㅎ?

 

540을 입력해볼까요 :D ?

정답

쨘! 쉽죠 :D

해킹문제라고 하기엔.. 음 뭔가 아쉽네요 ㅎㅎㅎㅎ

 

이만 14번 문제 풀이였습니다 :D

'CTF > Webhacking.kr' 카테고리의 다른 글

Old - 18 (score:100)  (0) 2020.02.12
Old - 17 (score:100)  (0) 2020.02.10
Old - 16 (score:100)  (0) 2020.02.09
Old - 06 (score:100)  (0) 2020.02.03
Old - 15 (score 50)  (0) 2020.01.31

Old 06번 문제

들어가니 ID와 PW가 있고 소스코드를 볼 수 있습니다 :D

일단 소스코드를 보도록 합시다!

 

소스코드를 보니 Encoding 부분과 Decoding 부분이 나뉩니다!

Encoding

그럼 인코딩 부분을 먼저 보도록 합시다 :D

if(!$_COOKIE['user']) 쿠키에 user가 있으면 참, 없으면 거짓
$val_id="guest"  val_id 변수에 guest 저장
$val_pw="123qwe"  val_pw 변수에 123qwe 저장
for($i=0;$i<20;$i++) 변수 i에 0을 저장하고 i를 1씩 증가시켜 20이 넘을 때까지 반복
$val_id=base64_encode($val_id);  val_id 변수의 값을 base64로 인코딩 후 다시 저장
$val_pw=base64_encode($val_pw); val_pw 변수의 값을 base64로 인코딩 후 다시 저장
$val_id(pw)=str_replace("A","B",$val_id(pw)); val_id(pw) 변수의 값에서 A가 존재하면 B로 치환 후 다시 저장
Setcookie("user",$val_id, ~ ) val_id 값을 user라는 쿠키값에 저장
Setcookie("password",$val_pw, ~ ) val_pw 값을 password라는 쿠키값에 저장

대략적으로 보면 guest와 password를 base64인코딩 20번을 한 뒤

해당 문자를 다른 문자로 치환해서 cookie 값에 저장시켜 버립니다.

Decoding

디코딩은 Encoding 순서와 반대이군요 :D

 

자 그럼 여기서 어떻게하면 풀까요?

밑에 보면

if($decode_id=="admin" && $decode_pw="nimda")

이라는 조건이 보입니다!

암호화되 어떤 문자열에서 디코딩 되었을 때 id가 admin, pw가 nimda이면 답이 되는군요 :D

그럼 id가 admin, pw가 nimda인 상태에서 암호화를 시켜버리면 되겠네요!

 

저는 phptester라는 홈페이지를 이용해서 id와 pw값을 넣고 돌렸습니다!

phptester

오른쪽에 보이시죠 :D

위의 id와 밑의 pw를 쿠키에 넣으면!!

문제풀이 성공!

짠! 이렇게 문제가 풀어집니다 :D

 

정말 쉽죠 ㅎㅎㅎㅎ?

코드만 보고 이해하면 바로 풀리는 문제입니다!

 

php말고도 python같은 다른언어로 풀어보시는것도 어느정도는 공부되겠죠 :D?

 

이만 6번문제 풀이였습니다 :D

'CTF > Webhacking.kr' 카테고리의 다른 글

Old - 18 (score:100)  (0) 2020.02.12
Old - 17 (score:100)  (0) 2020.02.10
Old - 16 (score:100)  (0) 2020.02.09
Old - 14 (score:100)  (0) 2020.02.07
Old - 15 (score 50)  (0) 2020.01.31

Old - 15 (score 50)

HelloMG
|2020. 1. 31. 16:17

https://webhacking.kr/

 

Webhacking.kr

Index Welcome Stranger! Notice(en) [2019-08-18] In the process of receiving service, some loss of data has been observed. For example, in very few accounts there may be a truncation of the last one letter of an userid. If userid contains multibyte characte

webhacking.kr

 

사이트 링크입니다 :D

 

사이트가 새롭게 단장했군요!

바뀌기 전에 몇 문제 풀었었는데.. 아이디, 패스워드가 기억이 나질 않는군요 ㅠ_ㅠ

 

Webhacking 문제는 처음부터 풀지않고 점수가 낮은 것부터 차차 풀어나가겠습니다 :D

실력이 좋지 않아서 높은 점수를 바로 풀기 어렵거든요 !

 

자 그럼 50점 문제인 Old-15번 문제를 풀어보도록 하겠습니다!

15번 문제

15번 문제를 들어가면 "Access_Denied"는 팝업창이 등장합니다.

 

js문이니 무력화 시키기 위해 javascript를 꺼버립시다!

개발자 도구(F12) -> 설정(F1) -> Disable Javascript 체크 :D

 

그럼 페이지의 소스코드를 확인할 수 있습니다 :D

15번 소스코드

소스코드를 보니 alert문으로 인해 팝업창이 뜨고 이전페이지로 이동하게 되어 있습니다 : (

그래서 밑의 document.write 문이 실행하지 않았던거죠!

 

그럼 이제 쉽게 풀 수 있겠죠 :D

"/?getFlag"를 주소에 넣어주면 플래그를 얻을 수 있답니다!

풀이

이번 문제는 javascript를 끄면 풀 수 있는 간단한 문제였습니다!

 

이만 간단한 풀이 방법이었습니다 :D

'CTF > Webhacking.kr' 카테고리의 다른 글

Old - 18 (score:100)  (0) 2020.02.12
Old - 17 (score:100)  (0) 2020.02.10
Old - 16 (score:100)  (0) 2020.02.09
Old - 14 (score:100)  (0) 2020.02.07
Old - 06 (score:100)  (0) 2020.02.03