webhacking.kr 38번 풀이 ctrl+U --> 페이지 소스보기 소스코드를 보니 admin.php로 접속해 봐야 할 거 같네요 제가 시도해 본 guest의 로그가 남아있네요. log injection을 시도해 봅시다. 먼저 ctrl+shift+i를 통해 개발자 도구를 열고, input-->textarea로 바꿔줍니다. 그리고 log의 형태대로 넣어주고 Login을 클릭합니다. 그 후 log viewer에 들어가서 새로고침 해주면? 보안 공부/webhacking.kr 2022.01.21
webhacking.kr 12번 풀이 js를 통해서 푸는 문제인 것 같다. 항상 하는 것처럼 개발자 도구(ctrl+shift+i)를 열었다. 하지만 이렇게 마지막이 ... 으로 끝나는 것을 보니 소스코드를 다른 방법으로 열어야 할 것 같다. 그래서 마우스 우클릭-->페이지 소스보기(ctrl+u)를 통해서 소스코드를 보았다. 그러면 제대로 된 소스코드를 볼 수 있다. 이 암호문은 AAencode로 만들어진 것이라고 한다. AAencode 디코딩 사이트에서 해당 소스코드를 복붙해서 해석해보자. var enco=''; var enco2=126; var enco3=33; var ck=document.URL.substr(document.URL.indexOf('=')); for(i=1;i 보안 공부/webhacking.kr 2022.01.21
webhacking.kr 60번 풀이 1. 쿠키값을 정수로 바꾼다. -->Access Denied 사라짐 2. sleep(1)부분을 이용해서 레이스 컨디션 공격 시도 - edge를 이용한다. edge에서도 쿠키값을 바꾼다. 보안 공부/webhacking.kr 2022.01.21
webhacking.kr 22번 풀이 mission: login as admin username: test password: 1234 hash코드가 32자리 인것을 보아 md5암호문 같다. md5복호화를 해보자 (대부분의 사이트가 에러가 뜬다. 밑의 사이트를 이용하자) https://crackstation.net/ CrackStation - Online Password Hash Cracking - MD5, SHA1, Linux, Rainbow Tables, etc. Free Password Hash Cracker Enter up to 20 non-salted hashes, one per line: Supports: LM, NTLM, md2, md4, md5, md5(md5_hex), md5-half, sha1, sha224, sha256, .. 보안 공부/webhacking.kr 2022.01.21
webhacking.kr 44번 풀이 소스코드를 보니, ls명령어를 실행시켜야 할 거 같습니다. id입력을 이용해서 해 봅시다. id --> ';ls' system("echo 'hello! ';ls''"); 그러면 위와 같은 문장이 나타나는 데요, 맨 앞의 hello!는 제외하고 뒤에 있는 파일 두가지가 보입니다. index.php는 현재 우리가 있는 곳이니 flag_29~로 이동해 볼까요? 그러면 flag가 나타납니다. 복붙해서 auth에 입력합시다. 보안 공부/webhacking.kr 2022.01.21
webhacking.kr 51번 풀이(PHP md5함수 취약점) wrong이라고 뜨네요 아마도 PW가 틀렸을 거라 생각됩니다. 오른쪽 밑을 보면 소스를 볼 수 있습니다. 소스를 한번 볼까요? 1. 먼저 post 방식으로 id와 pw를 입력받습니다. 2. id에 addslashes 함수를 적용하여 특수문자 앞에 역슬래시'/'를 붙여줍니다. 3. pw를 md5로 암호화합니다. 4. id='input_id', pw='md5('pw',true')'인 값이 테이블에 있으면 문제는 풀리게 됩니다. 일단 눈에 띄는게 있네요 바로 md5($_POST['pw'],true); 부분의 true 입니다. 이게 뭔가 싶어 검색을 해 봤더니 취약점이 검색어 자동 완성으로 바로 뜨네요 ㅋㅋㅋㅋ md5를 true와 같이 쓰면 취약점이 있나 봅니다. 자 그럼 취약점을 자세히 알아볼까요? md5 의.. 보안 공부/webhacking.kr 2022.01.05
webhacking.kr 53번 풀이 일단 소스를 살펴봅시당 먼저 소스코드를 해석해 보면, 1. tablename.php 파일을 불러온다. 2. 만약 answer변수가 hidden_table 변수값과 같다면 문제 해결 3. val변수값의 select, by를 필터링함(대소문자 상관 X) 4. a=val변수값에 해당하는 hidden_table 값을 가져온다. 먼저 val 값이 1, 2, 3, 4일 떄를 각각 입력해 봤더니 각각 1, 2, 3, 4를 내놓는다. 아마도 val값 입력할 때를 이용해 table이름을 알아야 할 거 같다. table 이름을 알아내는 가장 일반적인 방법은 SELECT table_name FROM information_schema.tables; 을 사용하는 것이다. 현재 사용하는 테이블의 이름만 알고 싶다면 WHERE t.. 보안 공부/webhacking.kr 2022.01.04
webhacking.kr 41번 풀이(마지막 부분 오류 해결 방법) view-source를 통해 소스를 살펴보자. 짧아서 좋다 ㅎㅎ 일단 php부분만 따로 살펴보자. $_FILES의 속성을 밑 여는 글에 정리해 놓았습니다 참고하세요!! 더보기 $_FILES['userfile']['tmp_name'] - 웹 서버에 임시로 저장된 파일의 위치. $_FILES['userfile']['name'] - 사용자 시스템에 있을 때의 파일 이름. $_FILES['userfile']['size'] - 파일의 바이트 크기. $_FILES['userfile']['type'] - 파일의 MIME 타입을 가리킴. 예를 들어, text/plain이나 image/gif. $_FILES['userfile']['error'] - 파일 업로드할 때 일어난 오류 코드를 알려주는.. 보안 공부/webhacking.kr 2022.01.04
webhacking.kr 46번 풀이 level의 숫자를 바꿔서 제출하면 id(Itusy)와 money의 숫자가 매변 다르게 나옵니다 그리고 view-source를 통해 소스코드를 살펴볼까요? 입력한 lv이 admin의 lv과 같으면 문제가 풀리게 됩니다. 그런데 우리가 admin의 lv을 알리가 없겠죠?? SQL injection을 시도해야 할 것 같습니다. 일단 필터링 되는 것들을 간단히 정리해 보죠 addslasher: \(역슬래시) str_replace: (공백), /, *, % preg_match: select, 0x, limilt, cash (대소문자 상관X) 위의 필터링값들을 피해서 select id,cash from chall46 where lv=0 or id='admin' 식으로 만들어 주면 된다. 첫번째 시도: 공백을 +로.. 보안 공부/webhacking.kr 2021.12.14
webhacking.kr 42번 풀이 일단 무언가를 다운로드 할 수 있는 창이 뜬다. 첫번째 파일 flag.docx 를 다운 받을려 했지만 'Access Denial'이 뜨고 두번째 파일인 test.txt 을 다운을 다운받습니다. text.txt에 담긴 내용입니다. 일단 어디 쓸지는 모르니 킵해 둡시다. ctrl+shift+i를 눌러 소스코드를 살펴봅시다. 소스코드를 살펴 보니 text.txt를 다운 받기 위해 이동하는 URL이 보입니다 ?down=dGVzdC50eHQ= 이 부분이죠. 그런데 여기서 마지막에 붙은 '='가 base64를 떠올리게 합니다. 혹시 모르니 base64 디코딩을 시도해 봅시다. 마지막 '='부분은 지우고 디코딩 해야 합니다. base64 디코딩 사이트 --> http://www.hipenpal.com/tool/bas.. 보안 공부/webhacking.kr 2021.12.14