红帝 发布的文章 - 第 16 页 - 网络编程与渗透技术笔记
首页
Search
1
Java编程小练习题目
24 阅读
2
Centos7.9系统如何换国内镜像源?
21 阅读
3
PHP在线加密系统源码
18 阅读
4
用Java编写九九乘法口诀表
17 阅读
5
全开源图床系统源码
17 阅读
Kali Linux
综合渗透注入
网站搭建与运维
编程开发
Java教程
Go教程
PHP教程
Python教程
MySQL
工具与脚本
网安竞赛
源码文件
漏洞百科
iAPP
登录
/
注册
找到
207
篇与
红帝
相关的结果
- 第 16 页
2024-05-18
用Java简单编写一个计算器程序
简单用Java写了一个计算器程序 下面是对代码的解释: 当然可以,下面是对你提供的jisuanqi(意为“计算器”的拼音)Java程序的详细解释: 导入Scanner类 import java.util.Scanner;这行代码导入了Java的Scanner类,该类用于从各种输入源(如控制台)读取数据。 定义类 public class jisuanqi {这里定义了一个名为jisuanqi的公共类。在Java中,每个可执行的程序都需要至少一个公共类,并且该类中需要有一个main方法作为程序的入口点。 main方法 public static void main(String[] args) {这是Java程序的入口点。当你运行一个Java程序时,JVM会查找main方法并开始执行。 创建Scanner对象 Scanner scanner = new Scanner(System.in);这行代码创建了一个Scanner对象,并关联到System.in(标准输入流,通常是键盘)。之后,你可以使用scanner对象来读取从控制台输入的数据。 读取第一个数字 System.out.print("请输入第一个数字: "); double num1 = scanner.nextDouble();首先,程序输出提示信息让用户输入第一个数字。然后,使用scanner.nextDouble()方法读取用户输入的双精度浮点数,并将其存储在num1变量中。 读取运算符 System.out.print("请输入运算符 (+, -, *, /): "); String operator = scanner.next();类似地,程序输出提示信息让用户输入运算符,并读取用户输入的字符串(运算符),将其存储在operator变量中。 读取第二个数字 System.out.print("请输入第二个数字: "); double num2 = scanner.nextDouble();再次,程序输出提示信息让用户输入第二个数字,并将其存储在num2变量中。 计算 使用switch语句根据用户输入的运算符进行不同的计算。 对于加法、减法和乘法,直接执行相应的运算。 对于除法,首先检查除数(num2)是否为零,如果为零,则输出错误消息并退出程序;否则,执行除法运算。 输出结果 System.out.printf("%.2f %s %.2f = %.2f%n", num1, operator, num2, result);使用printf方法格式化并输出计算结果。这里,%.2f表示双精度浮点数,保留两位小数;%s表示字符串;%n表示换行。 退出程序 如果在switch语句中遇到无效的运算符或除数为零的情况,程序会执行return语句,从而退出main方法,结束程序的执行。 总之,这个jisuanqi类是一个简单的命令行计算器,它允许用户输入两个数字和一个运算符,然后执行相应的数学运算并显示结果。 java.jpg图片 完整的计算器代码: import java.util.Scanner; public class jisuanqi{ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入第一个数字: "); double num1 = scanner.nextDouble(); System.out.print("请输入运算符 (+, -, *, /): "); String operator = scanner.next(); System.out.print("请输入第二个数字: "); double num2 = scanner.nextDouble(); double result; switch (operator) { case "+": result = num1 + num2; break; case "-": result = num1 - num2; break; case "*": result = num1 * num2; break; case "/": if (num2 != 0) { result = num1 / num2; } else { System.out.println("除数不能为0"); return; // 退出程序 } break; default: System.out.println("无效的运算符"); return; // 退出程序 } System.out.printf("%.2f %s %.2f = %.2f%n", num1, operator, num2, result); } }
Java教程
编程开发
# 编程开发
红帝
1年前
0
7
0
2024-05-17
Java中单双引号的区别
在Java中,双引号(")和单引号(')具有完全不同的用途,主要区别在于它们分别用于表示字符串(String)和字符(char)。 双引号(" "): - 双引号用于定义字符串。字符串是一个字符序列,可以是任何文本。 - 在Java中,字符串是String类的实例。当你使用双引号括起文本时,Java会自动为你创建一个String对象。 - 示例:String greeting = "Hello, Java!"; 单引号(' '): - 单引号用于定义单个字符,即char类型的字面量。 - 你可以使用单引号来存储一个单一的字符,如字母、数字、特殊符号等。 - 示例:char firstChar = 'H'; 注意以下几点: 如果你试图在单引号中放入多个字符,Java会报错,因为它期望单引号内只有一个字符。 如果你试图在双引号中放入一个字符而不是字符串,虽然这在语法上是允许的(因为单个字符也可以被视为字符串),但这可能会引发混淆或不必要的内存使用,因为字符串对象通常比字符对象占用更多的内存。 Java会自动处理字符串和字符之间的转换,但了解它们之间的区别对于避免常见的编程错误和误解是很重要的。 在Java中,字符串(一系列字符)必须使用双引号(")括起来,而单引号(')用于表示单个字符(char类型)。因此,在Java中输出字符串时,你必须使用双引号。 例如,以下代码是正确的,因为它使用了双引号来输出字符串: public class HelloWorld { public static void main(String[] args) { System.out.print("Hello, Java"); // 使用双引号输出字符串 } }而以下代码是不正确的,因为它试图使用单引号来输出一个字符串,但实际上它只表示了一个字符(在这种情况下是字符'H'): public class HelloWorld { public static void main(String[] args) { // 错误:单引号用于表示字符,而不是字符串 System.out.print('Hello, Java'); // 这会导致编译错误 } }如果你想输出单个字符,你可以使用单引号,但通常你不会用单引号来输出整个字符串。例如: public class HelloWorld { public static void main(String[] args) { System.out.print('H'); // 输出字符 'H' } }请注意,当你使用System.out.print()或System.out.println()方法时,它们期望接收的是一个String类型的参数,而不是char类型。因此,即使你尝试输出单个字符,Java也会自动将其转换为String(通过调用Character.toString()方法)。但最好还是明确地使用双引号来表示字符串。 java.jpg图片 总结来说,双引号用于定义字符串,而单引号用于定义单个字符。在Java中正确使用它们可以确保你的代码更加清晰、准确和高效。
Java教程
编程开发
# 网安竞赛
红帝
1年前
0
4
0
2024-05-17
CTF网络安全大赛web题目:baby lfi 2
题目来源于:bugku 题目难度:难 题目 描 述: What about making things a bit harder ? 题目源代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/5.2.3/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous" /> <link rel="stylesheet" href="main.css" /> <title>Say Hello to our Gentelmen | LFI Warmups</title> </head> <body> <br /><br /> <div class="container"> <h1 id="h1">LFI Warmups - level 2</h1> <hr /> <h2 id="challenge">Hello I can speak 2 languages !</h2> <hr /> <u><b>Rules</b></u> <ul> <li>include some critical file <code> why not /etc/passwd</code></li> </ul> <hr /> <u><b>Challenge</b></u> <p>Please Select a language of your choice : en/fr </p> <p><b>HINT :</b> Approved Paths, there is a <code>languages </code> directory, I wont tell you what's stocked in it ? ;)</p> <hr /> <p> </p> </div> </body> </html>这个HTML页面似乎是一个Web挑战或练习的一部分,特别是关于本地文件包含(Local File Inclusion, LFI)的。在这个挑战中,用户被要求通过某种方式访问一个名为languages的目录中的文件,以选择英语(en)或法语(fr)的语言设置。 不过,这个HTML页面本身并没有包含任何执行LFI的代码。它只是一个前端界面,用于向用户展示挑战的规则和提示。 这里有一些关键点: 挑战规则:规则中提到要“include some critical file”,并给出了一个例子/etc/passwd。但在一个真正的Web应用中,直接包含像/etc/passwd这样的系统文件是不安全的,也是不可能的(除非存在严重的安全漏洞)。 挑战内容:用户被要求选择一种语言(en/fr)。这可能意味着后端代码会根据用户的选择来包含或读取languages目录下的某个文件(例如en.txt或fr.txt)。 HINT:提示说“Approved Paths, there is a languages directory”。这意味着用户应该尝试访问languages目录下的文件。 潜在的LFI风险:虽然这个HTML页面本身没有LFI风险,但后端代码(可能是PHP、Python等)可能会根据用户输入来动态包含文件。如果后端代码没有正确验证或转义用户输入,就可能导致LFI漏洞。 为了完成这个挑战,你可能需要: 访问后端代码(如果可用)以了解它是如何处理用户输入的。 尝试通过修改URL或发送POST请求来传递不同的语言参数(例如?lang=en或?lang=fr)。 使用开发者工具(如浏览器的Network或Console标签页)来查看和调试HTTP请求和响应。 根据后端代码的行为和响应来确定如何成功访问languages目录下的文件。 ctf.jpg图片 下面我们开始解题: 这个题目还是有点难度的,根据bugku的网友提供的解题思路 我们直接输入“ URL/?language=./languages/../../../../etc/passwd ” 这样就能成功获取到flag,题目就解决了
网安竞赛
# 网安竞赛
红帝
1年前
0
7
0
2024-05-17
CTF网络安全大赛简单web题目:baby lfi
题目来源于:bugku 题目难度:简单 题目 描 述: What about making things a bit harder ? 题目源代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous" /> <link rel="stylesheet" href="main.css" /> <title>Say Hello to our Gentelmen | LFI Warmups</title> </head> <body> <br /><br /> <div class="container"> <h1 id="h1">LFI Warmups</h1> <hr /> <h2 id="challenge">Hello I can speak 2 languages !</h2> <hr /> <u><b>Rules</b></u> <ul> <li>include some critical file <code> why not /etc/passwd</code></li> </ul> <hr /> <u><b>Challenge</b></u> <pre>Please Select a language of your choice : en/fr </pre> <p><b>HINT :</b> use the <code>language parameter </code> :)</p> <hr /> <p> </p> </div> </body> </html>这个HTML页面是一个简单的网页,标题为“Say Hello to our Gentlemen | LFI Warmups”,并包含了一些基本的Bootstrap样式和自定义的main.css样式表。这个页面似乎是一个挑战或学习任务的起点,专注于一个名为“LFI Warmups”的主题。 以下是页面内容的详细分析: 标题和元信息: 页面标题为“Say Hello to our Gentlemen | LFI Warmups”。 <meta charset="UTF-8" /> 指定了文档使用的字符编码。 <meta name="viewport" ...> 标签确保页面在不同设备上都能正确显示。 样式链接: 页面链接到了Bootstrap 4.4.1的CSS文件以获取基本样式。 还链接到了一个名为main.css的自定义样式表,这可能包含页面的特定样式。 页面内容: <div class="container">:使用Bootstrap的container类来限制内容的宽度,并确保在不同设备上都有良好的布局。 页面包含两个主要的标题<h1>和<h2>,分别显示“LFI Warmups”和“Hello I can speak 2 languages !”。 有一条规则(<u><b>Rules</b></u>),指出需要包含一些“关键文件”,并给出了一个示例/etc/passwd(这暗示了可能与文件包含(LFI, Local File Inclusion)相关的挑战)。 挑战部分(<u><b>Challenge</b></u>)要求用户选择一种语言(英语或法语),并给出了一个提示,建议使用“language参数”。 可能的任务或挑战: 考虑到页面上的“LFI Warmups”和规则部分提到的文件包含(/etc/passwd),这个页面可能是一个用于教授或测试本地文件包含(LFI)漏洞的学习任务或挑战。 用户可能需要在URL或其他输入字段中添加特定的“language参数”来触发某些功能或访问特定的文件。 由于提到了两种语言(英语和法语),用户可能需要通过更改这个参数来查看不同语言的内容或触发不同的响应。 安全注意: 如果这是一个真实的、公开的网站,并且真的允许用户通过输入参数来访问服务器上的文件,那么这将是一个严重的安全风险。文件包含漏洞可以被恶意利用来访问敏感文件或执行恶意代码。 在学习或测试环境中使用这样的挑战时,请确保所有输入都经过了适当的验证和清理,以防止潜在的安全风险。 ctf.jpg图片 下面我们开始解题: 这个题目很简单 直接 “URL/?language=/etc/passwd” 即可获取到flag
网安竞赛
# 网安竞赛
红帝
1年前
0
6
0
2024-05-16
CTF网络安全大赛简单web题目:eval
题目来源于:bugku 题目难度:简单 一道简单web的题目 题目源代码: <?php include "flag.php"; $a = @$_REQUEST['hello']; eval( "var_dump($a);"); show_source(__FILE__); ?> 这个PHP脚本有几个关键部分,但首先,它是不安全的,因为使用了eval()和@(错误控制运算符)等可能引发安全问题的函数。让我们逐一解析这段代码: include "flag.php";: 这行代码包含了名为flag.php的文件。我们不知道flag.php的具体内容,但从上下文中可以猜测,它可能包含了一些敏感信息或“flag”,通常在CTF(Capture The Flag)挑战中用作答案。 $a = @$_REQUEST['hello'];: 这里,变量$a被设置为$_REQUEST['hello']的值。$_REQUEST是一个超全局数组,它包含了$_GET、$_POST和$_COOKIE中的所有内容。@运算符用于抑制任何由$_REQUEST['hello']可能引发的错误。 eval( "var_dump($a);");: eval()函数执行传入的字符串作为PHP代码。这里,它尝试使用var_dump()函数输出变量$a的内容。但这样做实际上是不必要的,因为你可以直接使用var_dump($a);来达到同样的效果。然而,使用eval()可能是为了某种特定的目的或挑战。 show_source(__FILE__);: show_source()函数输出当前文件的内容(作为源代码)。__FILE__是一个魔术常量,它包含当前文件的完整路径和文件名。 安全性问题: eval(): 这是一个非常危险的函数,因为它可以执行任何传入的字符串作为PHP代码。如果有人能够控制传递给hello参数的值,他们可能能够执行恶意代码。 @ 运算符: 虽然它在这里可能只是为了抑制可能的错误,但它也可以掩盖其他潜在的问题。 未验证或清理的输入: $a直接从$_REQUEST['hello']获取值,没有进行任何验证或清理。这可能导致安全漏洞。 如何改进: 永远不要在生产环境中使用eval()。 始终验证和清理用户输入。 考虑使用更安全的替代方案,如使用预定义的函数或方法,而不是动态地执行代码。 移除不必要的代码和功能,如show_source(__FILE__),除非你真的需要它。 使用框架和库,它们通常提供了更好的安全性和易用性。 ctf.jpg图片 解题思路: 只需要在web的url后面加上参数“ ?hello=file('flag.php') ”即可解决
网安竞赛
# 网安竞赛
红帝
1年前
1
5
0
上一页
1
...
15
16
17
...
42
下一页
易航博客