Analysis이번에는 prob()와 regex, like가 필터링이 되어있다.우선 query로 화면에 보여지는게 두개인 것을 확인할 수 있는데,,그리고 addslashes 함수가 적용이 되어 있다. 이번에는 strrev가 적용되지 않았기 때문에 만약 ‘를 입력값으로 주면 \’으로 들어간다. 근데 이제 query로 보여지는 것은 \’로 보여지지 않고 pw=''' 이렇게 보여지기 때문에 우선 pw를 blind sql injection으로 알아낼 수 있다고 판단. 참이게 되면 hello admin이 뜰 것이기 때문!!Solution우선 아래와 같이 pw를 확인해봤는데 드디어 pw가 8자가 아니라 9자리 이상인것을 확인이번에는 12자리이다.이제 blind sql injection을 아래 코드로 시도해보았다.i..
Analysis이번에도 id와 pw에 prob()를 필터링하고, strrev라는 함수와 addslashes 함수가 적용되어 있다.각 함수에 대해서 간단하게 알아보면strrev는 문자열을 뒤집는 함수addslashes는 문자열 내의 “,/와 같은 특수 문자들을 포함하고 있는 문자열에 역슬래쉬를 넣어준다.?id=’ 이렇게 입력값을 주면, 아래와 같이 들어간다. \’가 되고 strrev가 적용되는듯.이를 역이용해서 id값이 참이 되도록 해보면 될거 같다.Solution먼저 \를 id 값에 주게되면, \가 \를 문자열로 만들어버리기 때문에 더블쿼터를 입력값으로 주고 pw에 이전 문제처럼 or 1 # 값을 줘봤는데 바로 문제가 풀렸다.근데 나는 바로 풀릴줄 몰랐기 때문에… “\’ and pw=가 id 값으로 들어..
우선 정렬 알고리즘에 관한 문제이고 문제는 아래와 같다. 우선 문제를 간단하게 분석해보자면, numbers의 길이가 100,000이기 때문에 단순히 for문을 사용하거나 문자열로 나타내기 위해 단순히 문자열의 순열 (next_permutation) 방식으로는 시간 초과가 날 것이라 생각했다. 100,000의 길이면 nlogn 시간 복잡도를 가진 정렬을 상한선으로 택해야 하는데, C++에서 의 sort() 함수의 시간 복잡도가 nlogn이기 때문에 해당 sort() 함수를 잘 이용해보면 될 것이라 생각했다. sort 함수를 기존 정렬 방식이 아닌 주어진 문제에 맞는 정렬 방식을 사용하고 싶다면 sort 의 3번째 파라미터에 정렬 조건에 대한 비교 함수를 넣으면 자신이 원하는 정렬을 수행 가능하기 때문에 n..
LOS를 예전에 14개 정도 풀었었는데,, 이번에 들어가게 되는 프로젝트에 앞서 진행되는 스터디에서 빠른 시일내에 LOS를 다 풀기로 했다다시 계정을 생성해서 10번까지는 거의 막힘없이 풀었는데, 11번에서 좀 시간이 지체되서 해당 문제 정리와 blind sql injection 진행시, substr 함수와 mid 함수 사용정리도 하고자 한다.우선 golem 문제 풀이는 아래와 같다.Analysis우선 문제를 확인하면, 필터링이 prob _ . () 가 되어 있는 것을 확인할 수 있고, or and substr( =가 필터링이 된 것을 확인할 수 있다.그리고 id가 admin이고 해당 admin 계정의 pw와 일치하는 pw가 입력되어야 solve가 가능하다. blind sql injection을 통해 p..
우선 그리디 알고리즘 문제이다.문제는 아래와 같다. 문제에서 보트에 최대 2명씩 밖에 탈 수 없다는 조건이 있기 때문에 나는 투포인터 알고리즘을 사용해서 문제를 풀고자 했다. 투포인터 알고리즘이란, 리스트에 순차적으로 접근해야 할 때 두 개의 점의 위치를 기록하면서 처리하는 알고리즘이다.즉 포인터를 두개로 설정하면 된다.!풀이 코드#include #include #include #include using namespace std;int solution(vector people, int limit) { int answer = 0; sort(people.begin(), people.end()); // 오름차순 정렬부터 해주기 int tmp = 0; int f_idx = 0; //..
12번 Hardcoding Issues Part 2Source Codepackage jakhar.aseem.diva;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.EditText;import android.widget.Toast;/* loaded from: classes.dex */public class Hardcode2Activity extends AppCompatActivity { private DivaJni djni; /* JADX INFO: Access modifiers changed from: protected */ ..