목록Security/Web (27)
cdor1's lab
USER-AGENT를 건들여서 푸는 문제 같다. index.phps를 보니까 agent값을 가져와서 그 값을 mysql_query로 넣어준다. 그리고 그 쿼리로 뽑아온 값이 admin이라면 solve()를 불러준다.()와 , #를 필터링 하지 않으니까 sql injection이 가능 할 것 같다. cdor1라는 agent로 ip가 127.0.0.1이고 id는 admin이게 db에 넣는다. 뒷부분은 쿼리 에러를 막기 위해 #주석으로 처리해줬다.이렇게 한번 넣어주고 agent를 cdor1로 바꿔서 보내주면 id가 admin이 되니 문제가 풀린다.
*, /, or, %20 등등 sql injection에 쓰일만한 값들은 모두 필터링한다. union select 구문을 이용해서 2라는 값을 만들어주면 되는데,소스에서 전송해주는 query문이 ()로 닫혀있어서 공격 구문에도 ()를 넣어주는 것을 주의해야 한다. 2의 값을 필터링하기 때문에union select 2가 아닌 union select 1+1로 넣어주었다.그리고 %20 == 공백을%0a == linefeed*linefeed란? 커서를 현재 행의 다음 행으로 옮겨주는 특수 문자*를 사용해서 공백을 치환해준다. ?val=3)%0aunion%0aselect%0a(1+1을 넣으면 성공
문제에 들어가면 이렇게 login과 join 메뉴가 있다.join메뉴는 누르면 alart만 작동되고 아무런 동작을 하지 않는다. login메뉴는 injection을 시도해 보았지만 wrong pw만 출력하는 걸로 봐서는 injection이 불가능하다. 그래서 join메뉴를 들어가야겠다고 생각했는데login메뉴의 url이http://webhacking.kr/challenge/web/web-05/mem/login.php이니까http://webhacking.kr/challenge/web/web-05/mem/join.php로 접속해주면 join메뉴가 나오지 않을까 했다. 들어가니, 까만 화면밖에 보이지 않았고 그 페이지의 소스는 이랬다. 개발자 도구를 이용해서 어느정도 난독화를 풀어주니 oldzombie라는 c..
base64 -> sha1 ->sha1decode
네모네모 로직을 끼워 맞춰준다.그 줄에 적혀있는 숫자만큼 그 줄을 채워줘야 하는데 한 칸에 적혀있는 숫자가 2 이상이라면 그만큼 연속되게 채워줘야 한다. 그러자 이렇게 나오는데 소스를 보니까 name만 받는 것이 아니라 hidden타입으로 answer라는 값 또한 받는다.이 값을 건들기 위해서 burp suite를 사용할까도 생각했지만 맥인 관계로 환경설정도 귀찮고 해서로 바꿔서 웹페이지에서 직접 입력했다. id를 admin으로 하고 value값을 참이 되도록 하면 플래그가 나오지 않을까라는 생각을 해서or, and 등등을 넣어서 injection을 시도해 보았지만 전부 no hack을 출력하며 인젝션을 막았다.||, &&는 되지 않을까 싶어서 해보았는데1010100000011100101011111 ||..