'WEB' 카테고리의 글 목록 (5 Page)
본문 바로가기

WEB

(87)
[LOS] step18. nightmare 풀이 필터링 찾기 1) pw 파라미터에 _ . # - 필터링 2) pw 파라미터 입력값 길이가 6 이하여야 한다. 이 문제를 풀려면 위 필터링 조건도 맞추면서 id != 'admin' 을 무력화하고 pw가 true가 되어야 쿼리문이 넘어가서 풀린다. 즉 pw 입력값으로 인해 전체 구문이 true 가 되어야 한다. 일단은 pw를 모르니 pw 뒤에 오는 id ! = 'admin' 무력화를 위해 주석처리가 필요하다. 주석처리 방법은 다음과 같다. # (%23) /* */ - - ;%00 일단 #과 - 필터링되기 때문에 불가능함. /* */ 방법도 안되는 듯 싶다. */로 닫을 수 없음. 그럼 ;%00를 통해 필터링을 우회해야 한다. pw=(' ')도 true로 만들어야 하기 때문에 방법을 찾다보니 자동형변환을 이용..
[LOS] step17. zombie_assassin 풀이 필터링 조건 찾기 1) id와 pw 파라미터에 들어오는 문자열을 모두 뒤집는 strrev 함수가 쓰인다. 2) id와 pw 파라미터에 _ . ' 모두 필터링 3) id와 pw 파라미터에 ' , " , \ 입력시 앞에 \ 하나씩 추가됨. ' → '\ " → "\ \→\\ 이번 문제는 3번을 역이용해야 하는 것으로 보인다. step16번 문제에서 싱글쿼터 필터링을 우회하기 위해 백슬래쉬 (\) 를 이용하여 문자열로 만들었다. 이 점을 이용해야 한다. 백 슬래쉬를 이용하려면.. where id = ' test' and pw = ' test' 에서 id의 첫 싱글쿼터와 pw의 첫 싱글쿼터가 한 쌍이 되도록 만들어야 한다. 1차시도) 첫 시도는 다음과 같다. 앞선 문제와 동일하게 id= \ 먼저 넣고, pw에는 ..
[LOS] step16. SUCCUBUS 풀이 가장 먼저 필터링 확인하기 1) id 파라미터 : _ . ' 2) pw 파라미터 : _ . ' 분명 싱글쿼터가 모두 필터링되는데, 이 문제를 해결하려면 id 값이 있어야 한다. pw는 모르니 pw 파라미터를 무력화시키면서 id 파라미터에는 입력값이 들어가야 문제를 풀 수 있다. 하지만 이를 무력화하려면 id에 들어가는 싱글쿼터 필터링을 무력화하라는 말인데... 싱글쿼터 필터링 우회 기법을 알아야 한다. 몇 개 찾아보니 다음과 같다. " " 더블쿼터 사용 \ 백 슬래쉬 사용 일단 더블쿼터로는 불가능했다. id = ' ' 두번째 오는 싱글쿼터를 무력화할 수 없기 때문이다. 그럼 백슬래쉬를 사용해야 하는데, 여기서 백슬래쉬의 역할을 알고 가야 한다. \ : 뒤에 오는 ' 가 문자열로 인식됨 단, 이 방법은 i..
[LOS] step15. assassin 풀이 pw 입력값에 적용된 필터링은 싱글쿼터가 들어갈 수 없다. 이전 문제들과의 차이점은 파라미터 = ? 이런식으로 들어가지 않고 where pw like [ ? ] 이 부분에 문제를 풀 수 있는 payload를 넣어야 한다. 일단 기본적인 sql 문법 like와 따라다니는 것은 '%' 라는 것을 잊지말 것. pw=% 이 경우에 hello guest 를 출력한다. 그러면 pw에 %는 반드시 포함한 후 힌트를 찾아야 한다. %test ~~test 로 끝나는 단어 %test% 중간에 test가 포함되는 단어 test% test~~~ 로 시작하는 단어 위 3가지 조건을 통해 pw를 찾아야 한다. 1) %test : test로 끝나는 단어는 앞에 무한대로 길어질 수 있기 때문에 시간상 오래걸린다. 2) %test% ..
[LOS] step14. giant 풀이 이번 문제부터는 조금 다른 방식이다. get방식으로 shit라는 파라미터로 입력값을 받고 있는데.. 1byte 이상 들어오면 안되는 것 같다. 또, \n \r \t 와 같은 개행문자들을 모두 필터링하는 것으로 보아 %20 대신 사용할 수 있는 우회기법을 찾아야 한다. 그외에도 +, (), /**/ 모두 불가... 이것저것 찾아보니 %0b, %0c 와 같은 것들이 위에 개행문자가 모두 필터링 되면 사용한다고 한다. 참고 https://g-idler.tistory.com/61 [SQL Injection] 필터링 우회 방법 모음 1. 공백 문자 우회 1) Line Feed (\n) - 커서(캐럿)를 다음 줄(현재 위치에서 바로 아래줄)로 이동시키는 개행 문자 - URL Encoding: %0a - ex) no..
[LOS] step13. BUGBEAR 풀이 이번에도 자동화코드를 이용하는 문제인데 필터링이 진짜 많다.. 이번에도 no 파라미터에 payload를 작성해야 하는 것으로 보이는데.. 필터링 정리해보자. 1) _ . ' 등 특수문자 2) substr(substring 포함), ascii, or (ord 포함), and , like, 0x 등 우리가 지금까지 썼던 함수들을 모두 우회해야 한다.. 천천히 테스트 해보면.. no=1 test 만 했는데도 필터링 걸렸다. ! 중요한 필터링이다. 처음에 몰라서 시간이 걸렸음..ㅠ 띄어쓰기도 필터링되고 있었다. 3) 띄어쓰기(%20) 필터링 내가 정리한 우회 기법이다. 총 집합이다!!!!!!!!! substring(), substr() mid(), left(), right(), lpad(), rpad() asc..
[LOS] step12. darkknight 풀이 이 문제도 앞선 문제들과 비슷한 유형이다. addslashes가 있으니 pw를 일일히 대입해서 blind injection으로 찾아야 하고, 필터링이 뭐가 걸려있는지 필터링들을 우회해야 한다. 먼저 파라미터 no에 해당하는 필터링 1 ) _ . ' 등의 특수문자 2) substr, ascii, = 필터링 반면, pw에 해당하는 필터링은 싱글쿼터 뿐인 것 같다. 그러면 우리가 payload를 넣는 부분은 no에 해당할 것 같다. 또! pw와 no는 and 로 연결되어 있다. 우리는 pw와 no 둘다 모른다. 이부분은 false가 될 거고 no에 들어가는 입력값에서 true를 만들어서 우회해야 할 것 같다. no 파라미터에 number가 임의로 들어갈 것이다. 우린 이 number를 모르니 뒤에 우회구문을 ..
[LOS] step10. skeleton 풀이 이 문제에서 주의깊게 봐야할 부분은 두가지 pw에는 언더바와 같은 특정 특수문자에 대한 필터링 존재. 그리고 이전 문제들과 다르게 and 1=0 처럼 false 를 만드는 구문이 존재함. 이 부분을 무력화 해야 한다! 우리는 pw를 모르니까 또, id = admin 이 잘 입력되어야 풀리는 문제이다. id=admin은 쓰되, 뒤에 오는 1=0은 무력화해야 한다. payload는 다음과 같다. pw=' test' or id = 'admin'# ' pw를 모르니까 or 로 뒤에를 true로 만들어주었다. id = admin은 존재하므로, or과 연결해주면 pw를 몰라도 전체 구문이 true가 되어 문제를 풀 수 있다. 단, #는 url 상 예약문자이므로, 인코딩을 해주어야 한다. (%23) #로 인해 뒷 부..