분석 orge문제도 pw만을 전달받고 or과 and를 사용할 수 없습니다. 처음 쿼리를 통해서 참 거짓을 알려주고 다음에 addslashes를 거치고 result의 pw와 입력된 pw가 같아야 문제를 풀 수 있습니다. 이번에도 브루트포싱이겠군요. or, and를 사용하지 못하니까 || &&를 사용해서 풀면 될 것 같습니다. 풀이 id가 guest면서 pw가 공란인건 존재하지 않습니다. 그럼 이제 or을 가지고 제가 원하는 걸 찾아봅시당 이건 코드짜기 귀찮아서 그냥 손으로 대입했는데 admin의 pw 길이가 8입니다. import requests url = "https://los.rubiya.kr/chall/orge_bad2f25db233a7542be75844e314e9f3.php?" cookie = {'..
분석 이번에도 pw만 전달받고 스페이스바를 사용할 수 없도록 preg_match가 되어있습니다. 요로코롬 pw=%20만 해줘도 No whitespace가 뜹니다. 그러면 or 대신 || 쓰면 되는거 아닌가? 풀이 guest이고 pw가 ''이거나 id가 admin이도록 조건을 넣어줬는데 바로 클리어~
분석 이번 문제에서는 admin을 id로 주고 pw만을 get으로 받습니다. 그리고 보호기법으로 addslashes를 사용하네요. addslashes는 쿼리문에서 오류가 발생할만한 백슬래시(\), 작은 따옴표('), 큰따옴표(") 등을 \를 앞에 붙여 escape시키는 함수입니다. db에서 꺼내왔을 때는 백슬래시를 제거해서 원래의 문자열이 되도록 하는 stripslashes라는 함수도 있습니다. php에서는 magic_quotes_gpc라고 해서 이 작업을 자동으로 해주는 경우도 있다네요. 그래서 addslash가 되기 이전에 그냥 쿼리를 참으로 우회하면 hello admin만 나옵니다. 이후에 addslashes하여 쿼리를 다시 보내서 쿼리의 결과로 받아온 pw가 존재하고, 결과의 pw와 입력한(add..
분석 php를 분석해보면 id가 admin이어야 하고 no에는 '이나 " ` 등을 사용하지 못하도록.. 되어있네요 no에서 따옴표를 넣어서 하는 공격을 막아두는 것 같습니다. 음.. 그리고 id가 guest로 고정되어있고 입력받는 부분은 no밖에 없습니다. no 만을 이용해서 id를 admin이 되도록 해야하는데.. 따옴표를 우회할 방법이 있지 않을까 싶습니다. 스터디에서 preg_match를 우회하는 방법으로 char, hex를 이용해서 우회한다고 했는데.. 일단 숫자를 넣어보니 1번 넘버로 로그인이 되네요. 2번부터는 안 됩니다. 혹시 몰라 %27 (')도 넣어봤는데 안 되네요. or 문으로 id가 admin임을 넣어주면 될텐데.. 풀이 ppt에 char(0x61646d696e)라고 적혀있어서 cha..
두 번째로 풀 문제는 cobolt 분석 이전 그렘린 문제와 비슷하게 구성되어있으나, if 부분에 admin을 검사하는 것이 추가되었습니다. 그러면 id가 admin이어야 한다는 정보를 주고 있네요. id가 admin이고 pw는 md5로 해싱됩니다. 방식이 여러가지 있겠지만, 처음에 이건 될까 ? 싶어서 생각해본 방식 중 하나는 이렇게 넣어주는 것이었습니다. (참고로 #는 ascii로 0x23 => %23임) 그러면 id가 admin이고 쿼리가 참이 되리라 생각했지만 위에 보시다시피 admin이 아니라고 나옵니다. 이유를 생각해보면 and 연산과 or 연산 때문 일 것 같습니다. 그래서 DB를 만들어서 해봤습니다. 시나리오 테스트 member라는 테이블에 칼럼을 다음과 같이 구성해두었습니다. 여기서 위와 ..
S! 웹해킹 스터디를 시작하면서 3주차 스터디 과제는 LOS(Lord Of Sql injection) stage 15까지 푸는 것이었습니다. 포너블 했을 때 익숙한..! 이번엔 LOB가 아닌 LOS 풀이를 올립니다. (헤헤 기대된당) 분석 모든 익스는 분석부터! 웹에서는 php 코드가 주어집니다. sql 인젝션은 php를 통해서 DB를 조작하는데, 이때 보내는 query문을 자신의 입맛에 맞게 바꾸어 공격하는 것이랍니다. 여기서는 get 방식으로 id, pw를 보내는데, get 방식은 url 뒤에 데이터를 보내기 때문에, https://los.rubiya.kr/chall/gremlin_280c5552de8b681110e9287421b834fd.php?id=abcd&pw=1234 이렇게 id와 pw를 정해..
분석 checksec 결과 18세 이상인지 물어보고 아니면 종료시킨다, IDA에선 이렇게 되어있고 이번엔 win 함수가 없다. 흑.. https://tribal1012.tistory.com/39 LOBYTE, BYTE1, HIBYTE 매크로 LOBYTE : 가장 하위 1바이트를 말함, 리틀엔디안으로 들어간 메모리 값 중 가장 오른쪽 값? BYTE1 : 리틀엔디안으로 들어간 메모리 값 중 오른쪽 2번째 값? BYTE2 : 리틀엔디안으로 들어간 메모리 값 tribal1012.tistory.com Y인 경우에 이름을 입력받는데 동적할당한다. 해당 주소에 입력하고 usr에 strcpy를 한다(overflow가능?) 그리곤 welcome 이후에 printf한다. printf에서 포맷스트링이 bss에 있다는 점이 ..