본문 바로가기

분류 전체보기211

[암호학] Miller-rabin test를 통한 소수판별 밀러-라빈(miller-rabin) test를 통한 prime 판별 이번 포스팅에서는 강력한 소수 판별 기법 중 하나인 밀러라빈 소수판별법에 대해서 알아보겠습니다. 밀러라빈 테스트를 요약해서 말한다면, Fermat test와 Fermat factorization을 통해 소수를 판별하는 기법이라고도 할 수 있습니다. Fermat test란 ? 페르마의 소정리(Fermat Little Theorem)를 이용해서, 소수를 판별하고자 하는 것입니다. 페르마의 소정리란 다음과 같습니다 이때 이 역과정을 이용해서 만약 위의 식을 만족하는 p가 존재한다면, p는 소수라고 할 수 있을까? 라는 아이디어를 가지고 소수를 판별한 것입니다. 결과적으로, Fermat test만을 가지고 소수를 판별하는 것을 불가능합니다. F.. 2021. 6. 22.
[웹해킹] LOS 20 - (Dragon) Lord of sql injection - Dragon 풀이 los 20번 Dragon 풀이입니다. 문제 접근 먼저 필터링 조건을 살펴보면, \ _ . () 으로 상대적으로 적은 필터링입니다. 조금 특이한 점은 쿼리문을 살펴보면, id가 게스트인 계정의 pw를 입력하는데, 구문 앞에 주석처리가 되어있어서 어떤 값을 입력하든 다 주석 처리가 되어서 의미가 없어진다는 것입니다. $query = "select id from prob_dragon where id='guest'# and pw='{$_GET[pw]}'"; 문제를 해결하는 조건은 if($result['id'] == 'admin') solve("dragon"); admin 계정을 얻어와야합니다. 따라서 지금까지 내용을 정리해보면, 1. pw에 입력하는.. 2021. 6. 19.
[웹해킹] LOS 19 - (Xavis) Lord of sql injection - Xavis 풀이 los 19번 Xavis 문제풀이입니다. admin 계정의 pw를 입력해서 admin 계정의 pw가 맞다면 해결되는 문제입니다. 문제 접근 admin계정의 pw를 알아내는 blind sql injection 문제입니다. 필터링을 먼저 살펴보면 like와 regex에 걸려있습니다. regex는 처음 접해봐서 무엇인지 찾아보니, 다중 like 문을 사용해야 할때 간단한게 줄여주는 함수라고 합니다. 우선 문제에 필터링 조건이 많이 없으므로 쉽게 참을 만들 수 있습니다. Hello admin이 출력되는 모습입니다. 출력 문구를 찾았으므로 brute forcing을 통해 길이를 구해보겠습니다. 1. pw 길이구하기 ?pw=%27or%20id=%27admi.. 2021. 6. 19.
[웹해킹] LOS 18 - (Nightmare) Lord of sql injection - Nightmare 풀이 los 18번 Nightmare에 대한 풀이 포스팅입니다. 문제 접근 where 뒤에 오는 pw의 입력값을 조절하여 id를 획득하면 문제를 해결할 수 있습니다. 필터링 조건은 다음과 같고, 입력값이 6자리 이상이면 안된다는 추가적인 조건도 있습니다. if(preg_match('/prob|_|\.|\(\)|#|-/i', $_GET[pw])) exit("No Hack ~_~"); if(strlen($_GET[pw])>6) exit("No Hack ~_~"); 여러 시도를 해보아도 접근 방법이 잘 안떠올라서 힌트를 찾아 본 결과 자동 형 변환이라는 키워드가 나왔습니다. Auto type cast란 Mysql은 비교나 검색을 수행할 때 데이터의 .. 2021. 6. 19.