분류 전체보기 146

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 44번 풀이

소스코드를 보니, ls명령어를 실행시켜야 할 거 같습니다. id입력을 이용해서 해 봅시다. id --> ';ls' system("echo 'hello! ';ls''"); 그러면 위와 같은 문장이 나타나는 데요, 맨 앞의 hello!는 제외하고 뒤에 있는 파일 두가지가 보입니다. index.php는 현재 우리가 있는 곳이니 flag_29~로 이동해 볼까요? 그러면 flag가 나타납니다. 복붙해서 auth에 입력합시다.

webhacking.kr 34번 풀이

맨 처음 접속할 때 'debug me'라는 문구가 뜹니다. 확인을 눌러주면 그 문구는 사라지고 검은 화면만 남네요 그럼 Ctrl+shift+i를 눌러서 개발자 소스 장을 열어볼까요 네 뭔가 많습니다. 이걸 풀어야 될 거 같군요 일단 어떻게 구성된 건지 정리를 해봅시다. 인터넷에 javascript source beautifier 라고 치면 js를 예쁘게 정리해주는 사이트가 많이 있습니다. 제가 사용한 사이트는 https://www.freeformatter.com/javascript-beautifier.html입니다. 이곳에 js소스코드를 복붙하면, 이런 식으로 예쁘게 보여줍니다. 이걸 찬찬히 훝어봅시다. 그러면 여기서 맨 처음에 봤던 alert("debug me") 에 해당하는 거 같이 보이는 구문이 하..

SQL DB 정보 알아내는 구문 정리

1. DB 알아내는 법. select database() 2. table명 알아내는 법 SELECT table_name from INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'DB명' -table이 여러개일 때는 한 줄로 출력하기 위해 table_name 대신 group_concat(table_name)사용 -substr 3. column명 알아내는 법 SELECT column_name from INFORMATION_SCHEMA.COLUMNS WHERE table_name='테이블명' -column이 여러개일 때는 한 줄로 출력하기 위해 column_name 대신 group_concat(column_name)사용 ++ procedure analyse(); 사용 --..

webhacking.kr 29번 풀이

1. flag는 다른 테이블에 있다. 2. 현재 테이블에는 time, ip, file 컬럼이 존재한다. 이 문제는 sql의 문법을 이용해서 푼다. insert into 테이블명 values ('id1', 'pw1'),('id2', 'pw2') 같이 한번에 두 값이 들어갈 수 있다는 것을 알아야 한다. 먼저 파일 명을 file_name', 'time', 'ip주소')# 로 설정해서 보낸다. 1','123', 'ip_address')# 로 보내보았다. (ip는 자신의 것을 꼭 사용해야 함. ) 그러면 시간, ip주소, 파일 이름 순으로 정보가 정상적으로 나온다. 이를 통해 우리는 칼럼 순서가 시간, ip, 파일 이름이라는 것을 알 수 있다. 그럼 이제 2가지 정보를 보내보자. file_name1', 'tim..

webhacking.kr 59번 풀이

view-source 클릭 개발자 도구를 이용해서 살펴보니까 login할 때 쓰이는 아이디와 번호다 lid, lphone이네요! 소스코드를 정리해 봅시다. 1. lid와 lphone에 함수 addslashes를 적용한다. 2. lid와 lphone에에 해당하는 id와 lv를 선택한다. 3. id가 존재하면 lv를 출력한다. 4. 만약 lv==admin이면 문제해결 1. id와 phone에 함수 addslashes를 적용한다. 2. phone>=20이면 access denied 3. id에 admin(대소문자상관x)이 있으면 access denied 4. phone에 admin|0x|#|hex|char|ascii|ord|select(대소문자상관x)이 있으면 access denied 5. 테이블에 (id, ..

webhacking.kr 56번 풀이

BOARD에 admin과 guest에 대한 정보고 table 형식으로 있습니다. readme에 들어가면 access denied 라고 뜨고, hi~에 들어가면 hello~ 라고 뜹니다. 일단 소스코드와 쿠키에선 얻을 게 없었고, search칸에 이것저것 입력해 보았는데, hello값을 입력했을 때, guest에 대한 정보가 뜹니다. 그리고 h만 입력해도 guest에 대한 정보가 뜹니다. 아마도 search기능은 각 파일의 내용에서 해당하는 글자를 찾아주는것 같습니다. 그럼 당연히 admin에는 flag~가 있겠거니 싶어서 f를 검색해 보니까, 창에 admin이 떳습니다. 그리고 이것저것 시도해 보았습니다. 시도를 하면서 알게 된 것을 정리하자면, c언어의 strstr함수 아시나요?? 바로 문자열 속에서 ..

SQL injection(SQL 인젝션 공격)

SQL injection(SQL 인젝션 공격) SQL, 컴퓨터 보안, 해킹 기법, SQL 인젝션 공격이란 무엇일까요? 나무위키에 따르면, 코드 인젝션의 한 기법으로 클라이언트의 입력값을 조작하여 서버의 데이터베이스를 공격할 수 있는 공격방식을 말합니다. 출처: https://namu.wiki/w/SQL%20injection 이렇게 말로 풀어 쓰니 어려워 보입니다. 예를 하나 들어서 설명해 보죠!! (생각보다 쉬우니 따라와 보세요!!) 흔하디 흔한 SQL 구문을 하나 가져왔습니다. select data from table1 where id='id입력값' and pw='pw입력값' 자 이렇게 table1이 있고, table1과 연결되있는 웹사이트가 하나 있다고 해봅시다. 웹사이트에 ID와 PW를 입력하면 d..

webhacking.kr 55번 풀이

문제에 입장하자마자 요 귀여운 아이가 나타납니다!! 마우스를 움직이면 마우스를 따라 움직이는 게 너무 귀엽네요 ㅎ(눈도 깜빡깜빡 거려요!) 그리고 저 슬라임?이 움직임에 따라 스코어 점수도 변합니다. score 밑에 보면 rank라는 링크가 있네요! 들어가 봅시다. 랭크 순위와, 아이디, 스코어가 순서대로 쭉 나열되어 있습니다. 그런데 보시면 스코어가 2147483647로 다 똑같습니다. (이러면 순위가 상관 없잖아요?) 어쨌든 저는 첫번째 2147483647를 클릭해 보았습니다. 그러면 위에 id : jusb3 // 2147483647 가 나타나고, URL도 https://webhacking.kr/challenge/web-31/rank.php?score=2147483647 로 바뀐걸 볼 수 있습니다. ..