Site/LOS(20)
-
giant
이번시간에는 giant을 풀어보겠습니다 공부하는 입장이니 틀린 것이 있더라도 양해부탁드립니다 소스코드를 확인해보니 strlen함수를 이용해서 get방식으로 받은 shit값의 길이가 1보다 길면 아웃 preg_match함수를 통해 공백과 공백문자우회를 할 수 있는 \n, \r, \t 필터링 됩니다 query부분을 확인해 보면 from 과 get방식으로 받아온 shit값 사이에 공백이 없어서 쿼리문법의 오류가 있을거라고 생각이듭니다. 따라서 pw값에 1을 넣어주니 쿼리문에서 from과 1사이에 공백이 없는 문법적 오류라서 출력이 안되네요 해결방법은 간단하게 from과 shit사이에 공백을 넣어주면 해결이 될 것 같습니다 공백문자우회 1. \n : 줄바꿈[URL Encoding: %0a] 2. \t : 커서를..
2022.04.05 -
bugbear
이번시간에는 bugbear을 풀어보겠습니다 공부하는 입장이라 틀린 것이 있더라도 양해부탁드립니다 점점 필터링이 많아지는 것 같습니다 prob _ . ( )을 필터링 substr ascii = or and like 공백 필터링 addslashes함수로 pw 필터링 -> sql injection 공격 불가능 쿼리에서 가져온 pw값과 정확히 일치해야 클리어 이번문제도 sql blind injection인 것 같습니다 우회방법 ' -> " substr -> mid ascii -> hex =, like -> in or, and -> ||[%7C%7C], &&[%26%26] 공백 -> %09 일단 pw의 길이부터 구해보겠습니다 =, like을 둘다 쓰지 못하니 IN을 넣어 길이를 구했습니다 기존처럼 mid함수를 이..
2022.04.05 -
darknight
이번시간에는 darknight를 풀어보겠습니다 아직 공부하는 입장이라 틀린것이 있더라도 양해부탁드립니다 첫번째 preg_match에서 prob _ . ( )를 필터링해주고 두번째 preg_match에서 ' 필터링 3번preg_match에서는 ' substr, ascii =을 필터링 해줍니다 addslashes함수로 pw를 필터링 해주고 쿼리문에서 가져온 pw값과 get방식으로 받은 pw값이 정확히 일치해야 하므로 이번 문제도 sql blind injection 풀이법으로 가면 될 것 같습니다 먼저 우회 방법으로 ' -> " = -> like substr -> mid 로 대체해서 접근하면 될 것 같네요 먼저 pw의 길이부터 확인하겠습니다 ?pw=&no="1" or id like "admin" and len..
2022.04.05 -
golem
먼저 소스코드를 보면 첫번째 preg_match함수로 prob _ . ( )를 필터링해주고 두번째 preg_match함수에서 or and substr ( = 을 필터링 처리해주고있습니다 addslashes함수로 get방식으로 받아온 pw값을 필터링해주므로 sql injection 공격이 불가능할 것 같네요 쿼리문에서 추출된 pw와 get방식으로 받아온 pw값이 정확히 일치해야 클리어될 것 같습니다 따라서 이번는 blind sql injection을 이용해야 될 것 같습니다 우회방법 or -> ||, and -> &&, substr -> mid, = -> like로 우회를 하면 될 것 같습니다 cf) mid(문자, 시작위치, 가져올갯수); ex) mid('abcde', 2, 4); -> bcde 접근방법 ..
2022.04.02 -
skeleton
소스코드를 보니 이번문제에서도 result['id']가 admin이면 클리어입니다 특이한 점은 query부분에서 1=0을 넣어주어 항상 false인 값을 만들어줍니다 접근방법은 결국 and 1=0부분을 주석처리해주어 신경쓰지 않도록 해주면 될 것 같습니다 id='admin' -- ' and 1=0을 해주면 -- '가 주석처리를 해주기 때문에 id='admin' -- ' and 1=0 밑줄친 부분을 읽지 않게되고 result[id]가 admin이기 때문에 간단하게 클리어 될 것 같습니다 cf) 물론 #(%23)을 넣어서 주석처리 해줘도 됩니다
2022.04.01 -
vampire
이번시간에는 vampire을 풀어보겠습니다 아직공부하는 입장이니 틀린 것이 있더라도 양해부탁드리겠습니다 소스코드를 한번 보겠습니다 preg_match로 '가있다면 검열해주고 get방식으로 받아온 id값을 strtolower함수로 소문자로 바꿔줍니다 str_replace함수로 admin -> 공백으로 치환을해줍니다 그리고 id값이 admin이면 클리어인데 위에서 언급한것 처럼 제약이 2개가 있네요 1. strtolower로 입력값 -> 소문자로 치환 2.str_replace함수로 admin -> 공백으로 치환 admin만 맞추면되니 1번은 신경쓸 필요가 별로 없을 것 같은데 2번이 문제입니다 admin을 공백으로 바꿔주니 aadmindmin이라고 입력하게된다면 aadmindmin 밑줄친 admin이 공백처..
2022.04.01