내가 여기서 제공하는 것은 관련 기사
https://blog.csdn.net/xiaorouji/article/details/82292233 의 자세한 소스 코드 및 답변과 결합 된 익숙하지 않은 지식 포인트입니다.
가변 범위 추출
건설? flag = 1 & content = 1
strcmp는 문자열을 비교합니다.
제목은 이미 strcmp 함수를 설명했습니다.
if (strcmp ($ _ GET [ 'a'], $ flag) == 0) // str1이 str2보다 작 으면 <0을 반환
하고
str1이 str2보다 크면 0을 반환하고 같으면 0을 반환합니다. // 두 문자열 비교 (대소 문자 구분)
여기서 strcmp 함수를 사용하여 함수의 입력 매개 변수를 비교할 수 없습니까? a [] = 0. 플래그 아웃
urldecode 보조 인코딩 우회
기사를 자세히 작성합니다. 전달 후 url 인코딩을 디코딩 한 다음 다시 디코딩합니다.
url 인코딩을 직접 전달하여 탐지를 우회합니다. 디코딩 후 if 조건을 충족하고 플래그를 가져옵니다.
예를 들어, % 2528
% 25 구조 는 % 61을 구성하는 첫 번째 복호화 후 %이고 복호화가 다시 획득됩니다.
? id = h % 2561ackerDJ
eregi函数就是在字符串中进行匹配,如果直接上传违规参数,就退出
md5 () 함수
또한 일반적인 md5 함수 취약점 이지만 md5 판단이 3 개의 등호이므로 0e의 시작을 우회 할 수없고 배열 만 사용할 수 있다는 함정이 있습니다.
直接构造两个不同的数组
?username[]=111&password[]=222
== 기호이면 구성
md5('240610708')
//0e462097431906509019562988736854.
md5('QNKCDZO')
//0e830400451993494058024219903391
배열 NULL 우회
strpos 함수
는 문자열에서 "php"의 첫 번째 항목을 찾습니다. (대소 문자 구분)
<?php
echo strpos("You love php, I love php too!","php");
?>
관련 함수 :
strrpos ()-다른 문자열에서 문자열의 마지막 발생 위치 찾기 (대소 문자 구분)
stripos ()-다른 문자열에서 문자열의 첫 번째 발생 위치 찾기 (대소 문자 구분 안 함) )
Strripos ()-다른 문자열에서 문자열의 마지막 발생 위치 찾기 (대소 문자 구분 안 함) 암호 [1] = 4
를 우회하기 위해 빈 배열 구성
약한 정수 크기 비교 우회
is_numeric :
숫자인지 확인하고 % 00을 사용하여 우회하고 번호 확인
sha () 함수는 상대적으로 우회됩니다.
sha1 () 함수는 문자열의 SHA-1 해시를 계산하는 데 사용됩니다.
어레이 우회,
구성? 이름 [] = 11 & 비밀번호 [] = 222
md5 암호화 동등 바이 패스
약한 유형, 배열 업로드
16 진수 및 디지털 비교
먼저 코드를 분석합니다.이 함수는 temp 변수 가 1에서 9 사이의 숫자를 가질 수 없음을 요구합니다. 마지막으로 temp는 1에서 9 사이의 숫자를 가질 수 없음을 요구합니다.T E m P는 아닙니다 할 수 존재 에 . 1 . 9 의 사이 몇 단어 , 가장 후 , 과 에 요청 온도 = 3735929054,
그것은 모순했을 것이다,하지만 것 진수로 변환하는 트랜스 코딩 PHP를 16 진수에서이렇게.
3735990554를 0xdeadc0de로 16 진수로변환하고 0x를 가져 오는 것을 잊지 마십시오.
ereg 일반 % 00 잘림
https://blog.csdn.net/dyw_666666/article/details/85388125
는 여기에 매우 명확하게 작성되어 있습니다
추신 :
방법 2는 과학적 계산을 사용하여 숫자와 크기 간의 충돌을 해결합니다.
1e5는
물론 10의 5 제곱을 의미 합니다. 배열 함수를 업로드하고 처리 할 수없는 경우 null로 판단 할 수도 있습니다. null == false입니다.