이거 저번에도 비슷한 문제 있었던거 같은데 뭐였는지 까먹었다.코드에서 가장 의심되는 부분은 mb_convert_encoding이다.utf-8에서 euc-kr로 바꾸는데 이럴때 만약 %aa%27 이게 들어오면은?addslashes가 붙어 %aa\%27이런식으로 될거다. 하지만 mb_convert_encoding을 사용하면%aa\' => (이상한값)' 이렇게 바뀐다 즉, %aa\를 한문자로 취급해버려 이상한값으로 바꿔버린다.이러면 addslashes 우회가 가능하다.이후엔 그냥 admin필터링되어있으니 16진수바꿔서 하면 끝이다
Web Hacking/Webhacking.kr
저 flag.php 를 읽으면 된다.처음 flag.php에 접속하면 아무것도 뜨지 않는다.이게 read권한이 없어서 그냥 안읽히는줄 알고 php 웹쉘을 시도해봤는데 그래서 찾아보니깐 apache환경에서 .htaccess라는 파일을 사용할 수 있다고 한다..htaccess파일은 같은 폴더의 파일들에 룰을 지정? 할 수 있는 그런 apache 설정 파일이다..htaccess 파일이 은근 뭘 많이 할 수 있는데 쓸만한거 몇개 올려보겠다. 1. 파일 확장자 지정AddType application/x-httpd-php .xxx.xxx라는 파일을 php파일로 쓸 수 있다. 2. 파일 강제 실행php_value auto_prepend_file /full/path/to/prepend.php이 설정은 어떤 파일이 실행되..
오랜만에 webhacking.kr wrietup이다 일단 이 문제는 뭐 딱히 주어진게 없어 공격 벡터 찾기가 힘들었다. 이 문제에서 주어진 페이지는 딱 두페이지 뿐이다.두페이지 모두 특별히 큰 수상한점은 없지만 굳이 찾아본다면 ip is logging하고 날짜가 주석처리로 나온다는 것이다.처음엔 ip logging으로 접근해서 user agent에 php코드도 넣어보고 했지만 모두 실패했다. 날짜는 cookie의 time값을 기준으로 나와주는 것 같은데 time 값 뒤에 and 1=1을 넣었을때와 and 1=2를 넣었을때 날짜값이 달랐다.이를 통해 True일땐 09:00:01, False일땐 09:00:00을 뱉는걸 확인 가능하다.그렇다면 딱 봐도 blind sql injection이다.하지만 db구조를..
먼저 파일을 업로드 하면은 저렇게 time, 자기 ip, file이름이 출력된다.그래서 처음엔 file이름을 이렇게 변조하면 xss공격이 가능하지 않을까 해서 시도해봤는데괄호가 오면은 html인코딩을 해버리고 심지어 '/'가 오면은 '/'앞의 내용을 전부 삭제해버린다.그래서 이 방법은 틀린 것 같고 flag가 다른 테이블에 있다 했으니 sql injection을 의심해보았다. 파일을 업로드 한다 치면은 Insert into table values (time, ip, filename) 이런식 아닐까 했는데 생각해보니 time, ip, filename이 바뀌어서 들어갈 수도 있었다.그래서 여러가지 시도해보았다. 1. time, ip, filenamef')이렇게 하면 filename이 마지막으로 오게 하니 시..
디버그 하라고 한다. 개발자 도구에 있는 script를 갖고오면은 var a = [ "RcOhTDV1Ew==", "McOVwqpRBg==", "c8K/w43DvcK8", "SsOrTCF1CVDCgcKLEsKc", "NsK/w4Bc", "G1TDpwk=", "AcKtwqfDlW7Dsw==", "e3kkcQJfwoNFDEU9", "QMOXDBo=", "w5bCsWlh", "eWY6bg8=", "FnbDoEvDtl1LUkB7w4Q=", "esOZTiPDsg==", "bzfCkFfCtA==", "ZmzDjHcn", "PxLCm3LDvA==", "IcKlVy9pw57DgMK3w6kmwpvCiUnDhcOKw4A=", "LMKnwqECawEeEMOZQsK7wrLCscKpSG1AwqvDvjnDpMKhOSDCqQfDmV..