WeChall-writeup-3-11.14
14412 단어 WeChall
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: 처음에 따옴표 [`]를 잘못 쳤는데 계속 따옴표 ['] =