분류 전체보기

    (Lord of SQLInjection) cobolt 문제

    (Lord of SQLInjection) cobolt 문제입니다. 문제사이트에 접속하면 이전 고블린문제와 같은 형태로 이루어져있습니다. 소스코드 부터 해석해보겠습니다. 고블린문제 처럼 필터링이 걸려있는데 같은 필터링인것으로 보아 데이터베이스 자체를 공격하거나 조회하지 말라는 걸로 볼 수 있습니다. 쿼리 부분을 자세히보면 id와 pw를 GET방식으로 입력받는데 id가 admin이어야 접속이 되며 pw 워드는 입력받은 값을 md5 형태로 자동암호화 합니다. md5에 대해 알아보면 md5는 암호화만 존재할 뿐 복호화가 존재하지 않는 암호화 방식이라 찾는것이 어려우니 이전 고블린 문제처럼 and 부분을 뒷부분 부터 무력화화는 주석처리 공격을 시도해보겠습니다. 역시 주석처리 공격은 id와 pw를 동시에 입력받는 ..

    (Lord of SQLInjection) gremlin 문제

    (Lord of SQLInjection) gremlin 문제입니다. 문제 사이트에 접속하면 소스코드와 맨윗단에 쿼리가 어떻게 실행되는지 출력되어 있습니다. 먼저 소스코드를 해석해보자면 prob, _ , . , \ 등이 필터링 되어 있고 이를 사용하면 No Hack 가 출력된다는 군요 즉 from 절을 보면 알 수 있듯이 prob을 이용한 테이블 데이터베이스의 공격은 하지말라는 걸로 이해할 수 있습니다. 그럼 문제해결을 위해 봐야할 부분은 id 와 pw 를 GET방식으로 받으며 두개가 일치할 시 문제가 해결되는 것을 볼 수 있습니다. 가장 간단한 문제인데 id='' and pw='' 를 모두 받는 형태로 이루어져 있어 주석을 이용한 공격이 가능합니다. 즉 id만 맞다면 주석처리를 이용해 and 부터 뒷부분..

    Webhacking Writeup 33번 문제

    Webhacking Writeup old-33번 문제입니다. 개인적으로 가장악랄한 문제였습니다. 끝이 없어요.... 일단 접속하면 소스코드를 줍니다 열어보겠습니다. get방식으로 get값이 hehe이면 다음링크를 준다고 합니다. 입력하면 Wrong 대신 Next링크가 생기며 해결됩니다. 넘어가면 33-2 이번에도 소스코드를 줍니다. 접속해보겠습니다. 이번에는 post방식을 사용하네요. post방식은 파이썬 코드를 짜서 해결해보겠습니다. 다음링크를 또 주네요 33.php라는 군요 이전과 마찬가지로 소스코드를 줍니다 열어보겠습니다. 자기 ip를 myip변수로 get방식으로 입력하면 해결된다는 군요 리눅스를 사용한김에 ip도 리눅스에서 확인해보겠습니다. 위 커맨드로 ip를 확인후 GET방식으로 값을 삽입하면 ..

    Webhacking Writeup 38번 문제

    Webhacking Writeup old-38번 문제입니다. 일단 로깅 인젝션이 무엇인지 몰라 구글링을 했습니다. https://unabated.tistory.com/entry/Log-Injection 위 자료를 통해 로깅을 변조해 로깅파일을 신뢰하지 못하게 하는 공격이란것을 이해했습니다. 그럼 일단 목표일것 같은 admin부터 입력해보겠습니다. admin으로 로그인 하는 것은 막혀있는지 admin이 아니라고 합니다. 그럼 가볍게 guest부터 시작해보겠습니다. 입력해서 로그인을 눌렀으나 새로고침되고 아무런 반응이 없습니다. 어떻게 된건지 모르겠어서 소스코드를 열어보았습니다. 소스코드에서 admin.php가 있다는 힌트를 줍니다. 이쪽으로 들어가 보겠습니다. guest로 로그인했다는 log에 제 아이피가..

    Webhacking Writeup 23번 문제

    Webhacking Writeup old-23번 문제입니다. 를 실행시켜야 하는 것을 보니 XSS문제입니다. 일단 필터링이 무엇이 걸려있는지 확인하는것이 중요한데 기본을 먼저 입력해보겠습니다. 일단 값이 url에 표시되는 것을보니 get방식으로 전달되니 url의 입력이 가능할 것이고 ( ) 와 ; 값이 url인코딩되는 것을 보아 직접 url에 입력이 필요할 것같습니다. 그외에 no hack 출력이니 어디선가 필터링이 되는 것을 확인 할 수 있습니다. 소스코드를 제공해주지 않아 하나하나 직접 노가다로 확인할 수 밖에 없을 것 같습니다. 하나하나 확인해본 결과 ; ( ) 같은 특수문자는 필터링이 안걸려있는데 script 나 sc 같은 문자열에 대한 필터링이 걸려있습니다. 즉 를 입력할때 문자열 사이사이를 공..

    Webhacking Writeup 19번 문제

    Webhacking Writeup old-19번 문제입니다. 처음 사이트에 접속하면 admin이 입력되어 있으며 제출을 누를시 아래와 같이 어드민이 아니라며 로그인되지 않고 몇초가량 이후 원래 페이지로 돌아갑니다. 예상하기로는 admin으로 로그인 하는 것이 목표인것 같습니다. admin으로 로그인이라면 가장 있을 법한 guest를 시도 해보았습니다. guest에 성공을 했으나 어떠한 소스코드를 주는 것이 없어 여러가지를 살펴보다 쿠키값이 생성되어 있는 것을 확인 할 수 있었습니다. 여기서 눈에 띈것이 맨 뒤에 있는 == 부분입니다. 이러한 방식을 사용하는 암호는 base64가 가장 유력하기에 복호화를 시도해봤습니다. 예상대로 깨진 부분없이 복호화가 되었으나 복호화된 문장도 암호화되어 있는 것으로 확인되..

    Webhacking Writeup 32번 문제

    Webhacking Writeup old-32번 문제입니다. 접속해보면 대략 천개가 넘는 랭크가 있습니다. 뭘해야 할지 몰라 아무나 클릭해보니 클릭한 아이디의 hit값이 하나 올라갔습니다. 여기서 어떤아이디를 hit 100으로 올려야하는지 모르겠어서 쭉내려보다가 한글 닉네임에 이름들이 나열된것을 보고 webhacking 유저 아이디인것을 캐치했습니다. 본인의 아이디도 있을것으로 예상해 검색해보니 1300등 내외에 등록되어 있었습니다. 그럼 제 자신을 100으로 올리면 문제가 해결될 것으로 예상하고 클릭했는데 이미 투표를 진행해서 못한다고 출력됩니다. 그래서 소스코드를 열어보니 이름들을 같은 규격으로 나열된것 외에는 아무것도 없었습니다. 그래서 쿠키값 설정을 들어가보니 vote_check 값은 ok 쿠키가..

    Webhacking Writeup 26번 문제

    Webhacking Writeup old-26번 문제입니다. 접속해보면 소스코드가 적힌 링크를 주는 것말고 아무것도 없으니 일단 소스코드를 보겠습니다. 중간에 색깔로 된 부분이 우리가 풀어야할 부분으로 보입니다. 해석하면 preg_match()함수는 필터링함수로 admin로 id값을 입력받을 경우 no출력과 함께 exit() 함수 종료로 아래 구문이 실행이 안된다는 군요 이후 구문은 필터링을 통과하면 urldecode( )로 입력받은 id를 한번 디코더해주고 입력받은 id값이 admin일경우에 문제가 해결된다고 합니다. 여기서 문제가 주는 힌트가 있는데 urldecode( )함수 입니다. 왜냐면 url로 값을 입력할때 url인코딩를 해서 값을 입력하라는 힌트거든요 그러면 admin의 url인코딩 값을 찾..