분류 전체보기
-
이번 문제의 공격 백터는 pw 파라미터 하나뿐이다. pw의 필터링 목록을 살펴보자면, prob, _, ., (), regex, like가 있다. 또한 addslashes 함수를 사용하기 때문에 ', ", \, Null 바이트를 직접적인 공격에 사용을 못할 듯 싶다. regex은 mysql 내장함수로 쿼리문에서 다양한 정규식을 사용할 수 있는 함수이다. 아마 정규식을 사용해서 pw을 알아내는 것을 방지하지 위해서 필터링을 건 듯 하다. 쿼리문을 살펴보면 select id from prob_xavis where id='admin' and pw=''이라서, Orc 문제처럼 LENGTH 함수와 SUBSTR 함수를 이용하면 손 쉽게 admin의 pw를 획득할 수 있을거 같다. LENGTH 함수를 이용하여 admi..
[Lord of SQLInjection] Xavis Write UP이번 문제의 공격 백터는 pw 파라미터 하나뿐이다. pw의 필터링 목록을 살펴보자면, prob, _, ., (), regex, like가 있다. 또한 addslashes 함수를 사용하기 때문에 ', ", \, Null 바이트를 직접적인 공격에 사용을 못할 듯 싶다. regex은 mysql 내장함수로 쿼리문에서 다양한 정규식을 사용할 수 있는 함수이다. 아마 정규식을 사용해서 pw을 알아내는 것을 방지하지 위해서 필터링을 건 듯 하다. 쿼리문을 살펴보면 select id from prob_xavis where id='admin' and pw=''이라서, Orc 문제처럼 LENGTH 함수와 SUBSTR 함수를 이용하면 손 쉽게 admin의 pw를 획득할 수 있을거 같다. LENGTH 함수를 이용하여 admi..
2021.08.07 -
이번 문제는 where절의 pw가 ('')로 감싸져 있다. 또한 id는 admin이 아니라고 박혀있다. solve를 얻기 위해선 쿼리문의 값이 있어야 solve를 얻을 수 있다. 문제를 풀기 앞서 pw에 대한 검사가 있었다. prob, _, ., (), #, -를 필터링 길이가 6 초과를 하면 안됨. 일단 #, --를 사용해서 and id != 'admin'를 주석 처리하는 것은 포기해야할 것 같다. 인터넷에 주석 방법을 찾아보니 #, --, /**/, ;%00 4가지 방법이 있었다. 이 중 #, --은 필터링 때문에 불가능하며, /**/은 *사이에 쿼리문이 들어가야 함으로 현 문제에서 사용이 불적합하다. 즉, ;%00을 이용하여 and id != 'admin'를 주석 처리해야한다. select id f..
[Lord of SQLInjection] Nightmare Write UP이번 문제는 where절의 pw가 ('')로 감싸져 있다. 또한 id는 admin이 아니라고 박혀있다. solve를 얻기 위해선 쿼리문의 값이 있어야 solve를 얻을 수 있다. 문제를 풀기 앞서 pw에 대한 검사가 있었다. prob, _, ., (), #, -를 필터링 길이가 6 초과를 하면 안됨. 일단 #, --를 사용해서 and id != 'admin'를 주석 처리하는 것은 포기해야할 것 같다. 인터넷에 주석 방법을 찾아보니 #, --, /**/, ;%00 4가지 방법이 있었다. 이 중 #, --은 필터링 때문에 불가능하며, /**/은 *사이에 쿼리문이 들어가야 함으로 현 문제에서 사용이 불적합하다. 즉, ;%00을 이용하여 and id != 'admin'를 주석 처리해야한다. select id f..
2021.08.07 -
이번 문제는 Succubus 문제에서 발전된 문제이다. addslashes 함수를 사용하여 ', ", \, %00(Null 바이트)를 \', \", \\, \%00로 치환한다. 또한 strrev 함수를 이용하여 '\, "\, \\, %00\로 자리를 변경한다. 나는 ", %00를 이용하여 Succubus 문제처럼 풀이하려고 한다. select id from prob_zombie_assassin where id='"\' and pw='||1=1#'로 입력을 한다면, where 절의 id는 "' and pw='로 인식하게 된다. 원하는 대로 이루어졌지만, 간과한게 있었다. pw도 strrev 함수을 이용한다는 것이다. 나는 pw도 strrev함수로 자리가 바뀐다는 것을 깜박하였고, 반대로 #1=1||로 넣어..
[Lord of SQLInjection] Zombie Assassin Write UP이번 문제는 Succubus 문제에서 발전된 문제이다. addslashes 함수를 사용하여 ', ", \, %00(Null 바이트)를 \', \", \\, \%00로 치환한다. 또한 strrev 함수를 이용하여 '\, "\, \\, %00\로 자리를 변경한다. 나는 ", %00를 이용하여 Succubus 문제처럼 풀이하려고 한다. select id from prob_zombie_assassin where id='"\' and pw='||1=1#'로 입력을 한다면, where 절의 id는 "' and pw='로 인식하게 된다. 원하는 대로 이루어졌지만, 간과한게 있었다. pw도 strrev 함수을 이용한다는 것이다. 나는 pw도 strrev함수로 자리가 바뀐다는 것을 깜박하였고, 반대로 #1=1||로 넣어..
2021.08.07 -
들어가면 로그인 페이지가 반겨주고 Login버튼과 View Source버튼이 보인다. 바로 소스부터 봐보자. 바로 query문이 보이고 id와 pw를 검증하는것 같다. db는 mysql을 사용한다는 정보를 가지고 인젝션을 진행해 보자. id와 pw에 admin을 넣고 로그인을 진행할때 burp를 통해서 인젝션을 진행해 보았다. 이렇게 id 파라미터 뒤에 'or '1'='1을 넣어주었다. 이렇게 되면 위 query문이 id 값을 검증 우회할 수 있기 때문에 flag 값을 얻을 수 있다. 즉, 쿼리문에 select * from jhyeonuser where binary id='admin'or '1'='1' 이렇게 입력이 들어가게 되면서 pw가 틀리더라도 로그인이 된다는 의미이다. 그렇게 값을 보내면 flag..
[HackCTF] Web - Login 풀이들어가면 로그인 페이지가 반겨주고 Login버튼과 View Source버튼이 보인다. 바로 소스부터 봐보자. 바로 query문이 보이고 id와 pw를 검증하는것 같다. db는 mysql을 사용한다는 정보를 가지고 인젝션을 진행해 보자. id와 pw에 admin을 넣고 로그인을 진행할때 burp를 통해서 인젝션을 진행해 보았다. 이렇게 id 파라미터 뒤에 'or '1'='1을 넣어주었다. 이렇게 되면 위 query문이 id 값을 검증 우회할 수 있기 때문에 flag 값을 얻을 수 있다. 즉, 쿼리문에 select * from jhyeonuser where binary id='admin'or '1'='1' 이렇게 입력이 들어가게 되면서 pw가 틀리더라도 로그인이 된다는 의미이다. 그렇게 값을 보내면 flag..
2021.08.06 -
Javascript-Obfuscation2 문제풀이 해보도록 하겠습니다. 1. 문제 문제에 접근하면 아무것도 안 보이게 된다... 2. 문제풀이 어떠한 문제인지 확인하기 위해 패킷을 잡아보았다. 패킷을 잡아보니 pass의 힌트가 보이며, 이 힌트를 통해 정답을 입력해보아야겠다. 이후 입력된 값이 인코딩 되어있다고 생각하여 Decoder를 이용하여 디코딩해보았다. String.fromcharCode를 통해 UTF-16 코드로부터 문자열을 반환시킨다고 한다. alert를 이용해 이 문자가 무엇인지 출력해 보았다. 뱉어준 결과가 Pass 값이 될 것 같아 인증하는 곳에 입력해 보았다. 결과는... 파랑새가 나를 반겨주었다~ 문제풀이 끄읏~
[Root-Me]/Web-Client/Javascript - Obfuscation 2Javascript-Obfuscation2 문제풀이 해보도록 하겠습니다. 1. 문제 문제에 접근하면 아무것도 안 보이게 된다... 2. 문제풀이 어떠한 문제인지 확인하기 위해 패킷을 잡아보았다. 패킷을 잡아보니 pass의 힌트가 보이며, 이 힌트를 통해 정답을 입력해보아야겠다. 이후 입력된 값이 인코딩 되어있다고 생각하여 Decoder를 이용하여 디코딩해보았다. String.fromcharCode를 통해 UTF-16 코드로부터 문자열을 반환시킨다고 한다. alert를 이용해 이 문자가 무엇인지 출력해 보았다. 뱉어준 결과가 Pass 값이 될 것 같아 인증하는 곳에 입력해 보았다. 결과는... 파랑새가 나를 반겨주었다~ 문제풀이 끄읏~
2021.08.02 -
들어가니 php 코드와 함께 문제가 주어졌다. 코드를 살펴보니 secret.txt 파일 안에 $secretcode 값과 입력하는 $guess 값이 일치해야 flag 값이 나오는 듯 하다. 임의로 'asdf'라는 값을 넣어보니 GET 방식으로 guess라는 파라미터 값에 'asdf' 값이 들어 있는것을 볼 수 있었다. 이때 소스코드를 보면 guess라는 파라미터에 값을 넣어 보냈으니 &구분자와 filename에 같은 값을 넣어 보내면 flag 값이 나오지 않을까 생각해보았다. 흠, 이렇게 푸는 문제가 아닌가보다. 그래서 코드를 다시한번 살펴보니 extract함수를 볼수 있었다. extract함수는 전에 변수가 선언되어 있을 때, 변수를 한번 더 선언해 주면 초기 값으로 변경이 된다. 즉, url 뒤에 gu..
[HackCTF] Web - Guess me 풀이들어가니 php 코드와 함께 문제가 주어졌다. 코드를 살펴보니 secret.txt 파일 안에 $secretcode 값과 입력하는 $guess 값이 일치해야 flag 값이 나오는 듯 하다. 임의로 'asdf'라는 값을 넣어보니 GET 방식으로 guess라는 파라미터 값에 'asdf' 값이 들어 있는것을 볼 수 있었다. 이때 소스코드를 보면 guess라는 파라미터에 값을 넣어 보냈으니 &구분자와 filename에 같은 값을 넣어 보내면 flag 값이 나오지 않을까 생각해보았다. 흠, 이렇게 푸는 문제가 아닌가보다. 그래서 코드를 다시한번 살펴보니 extract함수를 볼수 있었다. extract함수는 전에 변수가 선언되어 있을 때, 변수를 한번 더 선언해 주면 초기 값으로 변경이 된다. 즉, url 뒤에 gu..
2021.08.01