DoR@Hee의 끄적끄적
문제 처음화면 개발자도구에서도 특별한 무언가는 안보인다. index.phps로 접속 먼가 엄청나게 많다 쿠키를 설정하고있으며 $val_id, $val_pw를 base64로 20번 인코딩하고있다 위 소스와 비슷한 소스코드 이자만 여기서 user password에 저장돼있는 값을 $decode_id에 저장하고 그 값을 base64로 다시 디코드 시킨다. 그래서 admin이라는 문자열을 base64로 20번 인코딩 시킨 후 edit cookie 를 이용해서 user, password 값에 넣었다 성공
문제 처음 시작화면 2개의 버튼이 존재한다. 개발도구로 뒤져보고있는대 join은 클릭 시 javascript 함수 no();를 호출한다. (이건 아니구나 배제) 역시 로그인 폼 나오면 SQL 가장 기본적인 구문을 입력했다. id가 admin이 아니랜다그래서 admin이란 문자열을 넣고 sql을 입력했다 또 어드민이 아니랜다. 그래서 처음부터 다시 보기로 했다. 자바스크립트 no 함수의 location.href가 수상했다. mem?경로를 보여준다?디렉터리 리스팅 취약점이 존재했고 join.php에 들어가 보았다. 자바스크립트 코드가 난독화 돼있었고 1차적으로 javascript 난독화 돼있는걸 사이트에서 정렬 시킨 후 크롬-콘솔에서 일일이 대입해서 메모장에 옴겨적으니oldzombie라는 문자열을 가진 쿠키..
딱 문제를 들어가보니 base64로 인코딩된 문자열이 나온다. base64 디코딩을 해보니 40byte짜리 Hash 함수가 나오는대 먼지 몰라서 검색을 해봤다. SHA1 HASH 함수란걸 유추 할 수 있었다. 해독사이트에서 한 번 해독 똑같은 결과값이 나와서 한 번 더 해독성공※ sha 함수는 단방향 암호화 이기 때문에 복호화가 안되며, 해독사이트는 그 동안 사용자들이 입력해놓은 값을 db에 저장해놓고 있다가 뿌려주는 방식이다.
문제 처음 화면 이건 머지? 하는 생각부터 든다.저 숫자에 따라서 박스를 누르면 색칠이된다. (js로 구현)그럼 이러한 화면이 나오는대 역시 저런화면이 나오면 일단 sql injection이구나 하고 sql 구문부터 넣어봤는대 그냥 입력받은걸 문자열로 뿌려주는 로직같다 결론 sql은 아니구나 계속 찾아보던 와중에 이러한 부분이 보였다. 10101~ 이건 아까 박스 value 인대 이부분이 먼가 의심스러웠다 hidden으로 값을 보낸다? 그래서 일단 저 부분에 sql 구문을 넣어봤더니 필터링 하고있구나 or 문을 필터링하고있는지 true를 필터링 하고있는지 알아보기로 했다. 여기까지 결론 : or문을 필터링하고있다! 그래서 or 을 대신하는 || 을 넣어봤다. 성공
문제 시작 화면 index.phps를 열어보랜다. 다음과 같은 소스코드가 나오고 cookie user_lv에 1을 저장하고있다. 여기서 @solve가 이 문제를 푸는 방법인대 cookie 값이 1> 5 < 6 이어야 이 문제를 풀 수 있다.크롬 확장도구 edit cookie 를 이용했고 user_lv를 5.1~5.9 아무값으로 변경해주면 성공!
1. SQL 인젝션이란? Web Hacking 기법으로써 Database에 쿼리문(질의문)을 넣는 과정에서 데이터를 임의적으로 조작 원하는 SQL 구문을 실행하는 기법 여기서 일반적인 Sql DBMS 내부적인 과정(parse, bind, execute, fetch)을 거치게 된다. >> Statement 객체 사용 시 여기서 일반적인 Statement를 사용하여 Select문을 입력했을 때에는 매번 모든 과정을 수행한다(parse > patch)그러나 PreparedStatement 객체를 사용할 경우 효율을 높이기 위해 최초 1번만 수행하고 이후에는 생략이 가능하다. parse 모두 거친 후에 생성된 결과는 메모리에 저장해두고 필요할 때 사용한다. 반복적으로 사용하기 위해 자주 변경되는 부분을 변수(?..
공부기간 : 넉넉잡고 1개월 공부 방법 : cbt 문제풀면서 오답노트 정리 17~14년 18년은 시험 당일 난이도 : 평타