WeChall-writeup-3-11.14

14412 단어 WeChall
아하, 이번엔 하루 만에 어제 다 쓴 writeup.이번에 몇 가지 유용한 도구를 모아서 밑에 붙일 거예요~
Training: Crypto - Transposition I
먼저 제목의 뜻에 따라transposition ciphers를 배웠고 이 문제는 여섯 글자를 한 조로 추산했다.다음 프로그램에서 문자의 위치를 조정합니다.
#include
using namespace std;
int main()
{
    string a;
    while(getline(cin,a))
    {

        for(int i=0;i<a.size();i+=6)
        {
            cout<<a[i+1]<<a[i]<<a[i+3]<<a[i+2]<<a[i+5]<<a[i+4];
        }
        cout<<endl;
        if((6-(a.size()%6))!=0)  cout<<6-(a.size()%6)<<endl;
    }
    return 0;
}

프로그램에서 한 줄의 출력을 구분한 후 6개의 한 그룹에 맞지 않는 더 많은 문자의 자릿수가 있습니다.답안을 제출할 때 많이 나온 자리를 빼면 된다.
Training: Crypto - Substitution I
https://www.cnblogs.com/ECJTUACM-873284962/p/7872114.html프로그램을 써서 이 사이트의 방법에 따라 수동으로    또는 quipqiup을 이용하여 상술한 과정을 자동으로 모의할 수 있다(정말 빠르다!)
Training: Crypto - Caesar II
생각은 여전히 캐시 비밀번호지만, k의 크기는 0-25에서 0-127로 바뀐다.그래서 프로그래밍 코드를 프로그래밍해 보세요. 전체적인 사고방식은 16진법->10진법->이동->(ASCII가 대표하는) 실제 문자입니다.작가가 좀 장난이 심한 것을 발견하면 2333, C를 빈칸으로 바꾸면 된다.
#include
#include
#include
#include
using namespace std;
int ch[300];
int main()
{
    string ss;
    cin>>ss;
    for(int i=0;i<ss.size();i++){
        if(ss[i]!='C')
            cout<<ss[i];
            else
                cout<<' ';
    }
    cout<<endl;
    string s;
    int sum=0;
    int T=245;
    int cnt=0;
    while(T--)
    {
        sum=0;
        cin>>s;
        sum+=(s[0]-'0')*16;
        if(s[1]>='A'&&s[1]<='F')
            {
                sum+=(s[1]-'A'+10);
            }
        else{
            sum+=(s[1]-'0');
        }
        ch[cnt]=sum;
        cnt++;
    }
    for(int i=1;i<=128;i++){
        for(int j=0;j<cnt;j++){
            char tmp=(ch[j]+i)%128;
            cout<<tmp;
        }
        cout<<endl;
    }
    cout<<endl;
    return 0;
}

    이 코드는 문제 풀이 결과를 직접 볼 수 있지만 뒤에 추가된 부분이 있습니다. 만약에 자신이 이 코드를 참고하지 못하면 그 뜻을 알아봐야 합니다!
Training: Crypto - Digraphs
제목의 뜻은 한 자모가 두 문자로 암호화되어 있다는 것이다.문제를 풀기 전에 앞의 30개는 단어Congratulations였다.이 정보점부터 확대하여 전체 텍스트 정보를 수동으로 추산한다(하지만 나는 몇 개의 대문자가 확실하지 않아 이 문제의 마지막 답안에 영향을 주지 않는다)소문자가 모두 확정된 후에 전체 텍스트를 대체해서 Solution을 얻을 수 있다.P.S. 제가 손으로 미는 방법이 좀 느린 것 같아서 코드를 쓸 시간이 있어요.
Training: MySQL I
첫 번째 ql 주입 문제!이전에 이 지식을 배웠지만 실조를 하지 않았다.소스 코드를 살펴봅시다!(해보고 싶다) $query = "SELECT * FROM users WHERE username ='u s e r n a m e′ A N D p a s w o r d = ′username'AND password ='username′AND password ='username′AND password'username에서 password의 검증 부분에 대한 주석을 #로 표시하면 통과할 수 있습니다.
Training: MySQL II
자세히 생각해 보니 데이터베이스와 관련이 있는 것 같아서 UNION과 SELECT로 이번 주입을 완성할 수 있는지 찾아봤어요.주요 사상은 사용자 이름을 입력하는 것은 데이터베이스에 우리가 쓴 데이터를 추가하고 비밀번호를 입력한 데이터에 설정된 코드를 추가하는 것이다.속여서 검증할 수 있어.     123 ’ union select 1 , ‘admin’ , md5(‘password’) #
Guesswork 채팅방에서 사람들이 이 문제를 토론하는 것을 보았습니다. [오]는 폭파를 쓸 줄 몰라요... 여러 가지 추측을 해볼게요. Do not re-use important passwords!I think you are not even a legit user, since you post news items: WEIRD: P.S. 이렇게 떨지 않는 해법을 알려주는 사내가 있나.
No Escape는 이 문제를 보는 사람이 많은 것 같아서 보기 시작했습니다[대오]   제목은 한 사람이 111표를 받아야 한다고 했어요. 수작업으로 개표를 해 봤는데 100표가 되면 비워진다고 했어요. [제가 수작업으로 하지 않았는데 그렇게 검증하는 것도 너무 짜증나죠!]그래서 코드를 보고 계표에 관한 부분을 보기 시작했다.$query = "UPDATE noescvotes SET$who =$who + 1 WHERE id = 1"index.php?vote_for=bill =111-- Tip: 처음에 따옴표 [`]를 잘못 쳤는데 계속 따옴표 ['] =

좋은 웹페이지 즐겨찾기