본문 바로가기
반응형

[보안]139

[LOS] IRON_GOLEM query : {$query}"; $_GET[pw] = addslashes($_GET[pw]); $query = "select pw from prob_iron_golem where id='admin' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("iron_golem"); highlight_file(__FILE__);?>처음엔 Time-based Sql injection로 풀어야 하나 싶었다. sleep과 benchmark가 막혀있길래, 헤비쿼리로 어떻게든 풀려고 했으나 헤비쿼리를 만드는 데.. 2020. 12. 29.
[LOS] DRAGON query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello {$result[id]}"; if($result['id'] == 'admin') solve("dragon"); highlight_file(__FILE__); ?>한줄 주석인 #을 이용하고 있는 쿼리다.이런 경우 개행을 이용해주면 문제를 풀 수 있다. 기존 아래 쿼리를select id from prob_dragon where id='guest'# and pw='{$_GET[pw]}'입력에 개행을 넣어줘서 아래처럼 만들어준다.select id from prob_dragon where id='guest'# an.. 2020. 12. 28.
[LOS] XAVIS 못풀었슴 ㅜ.ㅜ 다른 분들의 write up을 참고하니, 두 가지 풀이가 있다. 1. 우선, 패스워드의 길이부터 알아낸다. 이 부분은 할만함! query : select id from prob_xavis where id='admin' and pw='1' or id='admin' and length(pw)=12 and '1' -> 비밀번호 12자리 근데, 이제부터 ascii와 substr을 이용해 pw 의 문자를 하나씩 읽어오면 자꾸 0만 뜨고 풀리지가 않는다.. 다른 방식으로 접근해줘야한다. query : select id from prob_xavis where id='admin' and pw='1' or id='admin' and length(substr(pw, 1,1))=4 and '1' -> pw의.. 2020. 12. 27.
[LOS] NIGHTMARE 6) exit("No Hack ~_~"); $query = "select id from prob_nightmare where pw=('{$_GET[pw]}') and id!='admin'"; echo "query : {$query}"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) solve("nightmare"); highlight_file(__FILE__); ?>코드를 한참 바라보다가, 산술연산자나 비교연산자를 사용해볼 순 없을까 라는 생각이 문득 들었다.그렇게 로컬 sql 상에서 이런저런 테스트를 하다가 새로운 경험을 하게 되었다. = 를 사용한 경험들 중, 조금 새로운 접근이였다. (다른분들에.. 2020. 12. 25.
반응형