<dl id="opymh"></dl>

<div id="opymh"></div>
      <div id="opymh"><tr id="opymh"></tr></div>

        <em id="opymh"><ins id="opymh"><mark id="opymh"></mark></ins></em><sup id="opymh"><menu id="opymh"></menu></sup>

        <em id="opymh"></em>

        <em id="opymh"><ol id="opymh"></ol></em>

              频道栏目
              首页 > 系统 > Linux > 正文

              了解£ºshell脚本+脚本优化+脚本注入+正则表达式

              2019-03-01 11:07:20           
              收藏   我要投稿
              密码脚本编写

              创建一个简单的入门级猜数密码脚本

              mkdir -v /sh

              vim /sh/caizi.sh

              #!/bin/bash

              read -p 'please input your number:' x

              if [ $x -eq 520 ]

              then

              echo 'you are right'

              elif [ $x -gt 520 ]

              then

              echo 'you are bigger'

              else

              echo 'you are little'

              fi

              这里无论输入是否正确都会退出£¬需要做脚本优化

              脚本优化

              创建一个简单的猜数密码脚本

              vim /sh/caizi.sh

              #!/bin/bash

              while :

              do

              read -p 'please input your number:' x

              if [ $x -eq 520 ]

              then

              echo 'you are right'

              break

              elif [ $x -gt 520 ]

              then

              echo 'you are bigger'

              else

              echo 'you are little'

              fi

              done

              给文件添加可执行权限

              chmod +x /sh/caizi.sh

              执行脚本

              . /sh/caizi.sh

              2019-02-25_101417.png

              这里没有对密码输入类型?#32479;?#24230;进行设置£¬可以正则表达式对输入内容做初步限制

              正则表达式

              vim /sh/caizi.sh

              #!/bin/bash

              while :

              do

              read -p 'please input your number:' x

              echo -e $x | egrep -q '[0-9a-zA-Z]+$' #限制必须输入数字或大小组名

              if [ $ -ne 0 ]

              then echo 'please enter numbers or letters'

              elif [ $x -eq 520 ]

              then

              echo 'you are right'

              break

              else

              echo 'you are wrong'

              fi

              done

              2019-02-25_200602.png

              (a-z无法和1-9比较)

              简单的脚本注入

              输入注入代码

              please input your number: 1 -eq 1 -o 123

              未作正则表达式

              2019-02-25_104730.png

              做了正则表达式

              2019-02-25_200657.png

              这里运用的是输入没有限制可以注入相应的脚本(如‘-’)从而绕过密码并?#19968;?#21487;以执行其他命令甚至获取root权限

              由此可见简单的入门脚本可以通过脚本注入的方法实现无需密码登陆十分不安全£¬这时我们就需要用到正则表达式对输入的密码做限制过滤传入的参数¡£

              正则表达式

              vim /sh/caizi.sh

              #!/bin/bash

              while :

              do

              read -p 'please input your number:' x

              y=$(echo -e $x | sed 's/-//g' )

              echo -e $x | egrep -q '[0-9a-zA-Z]+$' #限制必须输入数字或大小组名

              if [ $ -ne 0 ]

              then echo 'please enter numbers or letters'

              elif [ $y -eq 520 ]

              then

              echo 'you are right'

              break

              else

              echo 'you are wrong'

              fi

              done

              (这里可以将退出命令break改为其他命令£¬这样输入正确就会执行其他命令)

              2019-02-28_174546.png

              修改脚本功能£º

              如果密码输入正确创建520you?#27809;?#23494;码为520,输入失败则直接退出

              vim /sh/caizi.sh

              #!/bin/bash

              while :

              do

              read -p 'please input your number:' x

              y=$(echo -e $x | sed 's/-//g' )

              echo -e $x | egrep -q '[0-9a-zA-Z]+$' #限制必须输入数字或大小组名

              if [ $ -ne 0 ]

              then echo 'please enter numbers or letters'

              elif [ $y -eq 520 ]

              then

              echo 'you are right'

              i=${x}you

              useradd $i

              echo "520" | passwd --stdin $i

              break

              else

              echo 'you are wrong'

              break

              fi

              done

              2019-02-28_180952.png

              可以看到如果?#27809;?#24050;创建还会执行£¬需进一步优化¡£

              vim /sh/caizi.sh

              #!/bin/bash

              while :

              do

              read -p 'please input your number:' x

              y=$(echo -e $x | sed 's/-//g' )

              echo -e $x | egrep -q '[0-9a-zA-Z]+$' #限制必须输入数字或大小组名

              if [ $ -ne 0 ]

              then echo 'please enter numbers or letters'

              elif [ $y -eq 520 ]

              then

              echo 'you are right'

              ( i=${x}you

              if id $i

              then

              echo "$i exist"

              else

              useradd $i

              echo "520" | passwd --stdin $i

              fi )

              break

              else

              echo 'you are wrong'

              break

              fi

              done

              2019-02-28_192407.png

              虽然做了输入限制£¬但没有限制输入次数和时间可以通过暴力破解破解出密码£¬因而脚本还需要做进一步的脚本优化¡£

              上一篇£º?#27604;?#24535;文件大于1G时清空文件£¬非删除
              下一篇£º如何通过IP获取MAC地址£¿如何通过mac来获取IP地址£¿
              相关文章
              图文推荐

              关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报?#34892;?/a>

              版权所有: 红黑联盟--致力于做实用的IT技术学习网站

              ¼«ËÙ·ÉͧºÃ¼Ù
              <dl id="opymh"></dl>

              <div id="opymh"></div>
                  <div id="opymh"><tr id="opymh"></tr></div>

                    <em id="opymh"><ins id="opymh"><mark id="opymh"></mark></ins></em><sup id="opymh"><menu id="opymh"></menu></sup>

                    <em id="opymh"></em>

                    <em id="opymh"><ol id="opymh"></ol></em>

                          <dl id="opymh"></dl>

                          <div id="opymh"></div>
                              <div id="opymh"><tr id="opymh"></tr></div>

                                <em id="opymh"><ins id="opymh"><mark id="opymh"></mark></ins></em><sup id="opymh"><menu id="opymh"></menu></sup>

                                <em id="opymh"></em>

                                <em id="opymh"><ol id="opymh"></ol></em>