7.1and7.8

本文围绕Web安全题目展开,涵盖i春秋文件包含、文件上传、SQL注入等多种题型。介绍了利用REQUEST接受数据、绕过文件上传类型限制、判断注入点及字段等解题方法,还涉及代码审计、程序逻辑分析等,通过不同技巧获取题目中的flag。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

web5

1.i春秋 文件包含

REQUEST 接受数据,先传个?path=flag.php 看看能不能有什么结果,没得

查了以下发现 allow_url_include打开,即可以使用php://input用包含post中的代码。

上传<?php echo 'ls' ;?>

打开第一个文件即得flag。

2.文件上传

打开发现直接可以上传文件,写个一句话往上传试试,类型不允许。

上传图片试试,

成功,

抓包试试

改下类型,1.php上传成功。

菜刀连接发现没有什么可用的,看了眼wp发现有一个ctf.sql,但我那个没有...

这个大概要连接数据库就能看到flag了。

3.sql注入。

打开题告诉说flag在数据库里,测试存在注入点。

判断字段,报错了,猜测过滤了关键字,

尝试发现只有<>回显正确,order by判断字段为3

?id=1%20union%20sele<>ct%201,2,3,发现显示位

查看数据库,

接下来就常规操作,查表

查flag字段即可。

4.i春秋登陆题。

打开网页,查看源码,最先发现test1  test1 

试试可以登进去。但没有结果,抓包看看。

 

发现有个show 值为0,这里在左边改为1试试,

返回了源码

 

发现需要让 $login['user'] === 'ichunqiu',输出flag,

这里用php解密一下,将结果添加到cookie中的token中然后发过去即可得到flag。

5.ichun qiu   test

打开题目发现为cms,百度了一下有现有的漏洞可直接利用

/search.php?searchtype=5&tid=&area=eval($_POST[1])

上传后用菜刀连接,

发现数据库的名称以及账号密码,

连接数据库,

即得fiag。

6.shiyanba sql2

题目提示过滤,

试试几个基本字符。

发现空格和select被过滤了,尝试sel<>ect,不行,而且发现(也没得了。

这里查了下用/**/select/**/可以绕过,但是不能用(就没办法查数据库这些

查一下全部表名了,

'union/*!select*/table_name%0afrom%0ainformation_schema.tables%23

查看字段,

但其实这个最开始就可以猜一猜flag这个表了,直接碰运气也是可以的...

7.shiyianba md5守株待兔

一道脑洞题,

给了一个系统的密钥和自己的密钥,而且每刷新一次系统的密钥就会变,

用MD5解密发现是越来越大的,推测是根据时间改的,

网上安利了师傅的脚本,

大概理解着敲了下,

跑出flag,

8.shiyanba  web200

打开题目,观察应该是代码审计了。

看一下函数意义,

strrev是一个将字符串进行翻转的函数。

substr是一个取字符串子串的函数,其用法为strsub(str, start, length),第一个参数为字符串,第二个参数为起始位置,第三个参数为子串长度,返回的结果就是str字符串从start这个位置开始的长度为length的子串。

ord函数的参数为字符串,此函数将返回字符串第一个字符的Acsii码。

str_rot13:如名,对字符串参数进行ROT13编码,ROT13是它自己本身的逆反;也就是说,要还原ROT13,套用加密同样的算法即可得。

按顺序读一下代码,首先反转字符串,再把反转后的每个字符加1,再base64编码,反转,root13编码,

这里返回去就对了,

 

得到flag

 

9.shiyanba 程序逻辑

进入发现是一个登陆框,看源代码发现

打开发现源码。(截取)

if($_POST[user] && $_POST[pass]) {
	$conn = mysql_connect("********, "*****", "********");
	mysql_select_db("phpformysql") or die("Could not select database");
	if ($conn->connect_error) {
		die("Connection failed: " . mysql_error($conn));
} 
$user = $_POST[user];
$pass = md5($_POST[pass]);

$sql = "select pw from php where user='$user'";
$query = mysql_query($sql);
if (!$query) {
	printf("Error: %s\n", mysql_error($conn));
	exit();
}
$row = mysql_fetch_array($query, MYSQL_ASSOC);
//echo $row["pw"];
  
  if (($row[pw]) && (!strcasecmp($pass, $row[pw]))) {
	echo "<p>Logged in! Key:************** </p>";
}
else {
    echo("<p>Log in failure!</p>");
	
  }

可以发现user存在单引号注入,但密码稍微复杂,需满足($row[pw]) && (!strcasecmp($pass, $row[pw])),

构造payload, user='union select md5(1)#&pass=1 post提交即可。

10.shiyanba false

打开网页,查看源码先,

 

<?php
if (isset($_GET['name']) and isset($_GET['password'])) {
    if ($_GET['name'] == $_GET['password'])
        echo '<p>Your password can not be your name!</p>';
    else if (sha1($_GET['name']) === sha1($_GET['password']))
      die('Flag: '.$flag);
    else
        echo '<p>Invalid password.</p>';
}
else{
    echo '<p>Login first!</p>';}
?>
读一下输出flag的条件,首先要传入name和password,且不能相等。只有当(sha1($_GET['name']) === sha1($_GET['password']),输出flag

sha1()函数默认的传入参数类型是字符串型,可以传入其他类型,使其返回值为false。如数组类型。

用数组传,

?name[]=a&password[]=b 即得到flag。

 

 

 

 

 

 

``` {智能估值体系V14.1优化版} 大盘过滤:=INDEXC>MA(INDEXC,60) AND INDEXC>MA(INDEXC,120); {动态PE优化} DYNPETTM:=IF(FINANCE(1)>3E8 AND FINANCE(4)>1.5E8, CLOSE/((FINANCE(1)/MAX(FINANCE(4),1.2E8)+1E-6)*0.81)* (1+0.18*INDUSTRYF(1013)),1000); {PB率优化} PB_RATE:=IF(FINANCE(34)>0.88 AND CLOSE>5.5, CLOSE/((FINANCE(34)*0.85+REF(FINANCE(34),1)*0.15)*0.97+1E-6),1000); {PEG计算优化} PEG_VAL:=DYNPETTM/MAX(FINANCE(30)/REF(MAX(FINANCE(30),0.01),4),1.35); {分形波动率V21} VAR_PERIOD:=IF(STD(CLOSE,89)/CLOSE<0.018,377, IF(STD(CLOSE,89)/CLOSE<0.04,233,89)); SLOW_LEN:=IF(STD(CLOSE,89)/CLOSE>0.2,INT(VAR_PERIOD*1.618),CEILING(VAR_PERIOD*2.118)); {行业轮动V14.1} HY_RET:=EMA((INDEXC/REF(INDEXC,5)-1)*100,5)*1.45; TRANS_MAT:=EMA((SUM((IND_RATIO>REF(IND_RATIO,5))*(REF(IND_RATIO,5)>REF(IND_RATIO,21)),21)+ SUM((IND_RATIO>REF(IND_RATIO,5))*(REF(IND_RATIO,5)>REF(IND_RATIO,34)),34))/2/ (SUM(REF(IND_RATIO,5)>REF(IND_RATIO,21),55)+1E-4),5)*1.18; {行业筛选V4.1} SECTOR_FLT:=SECTOR_STR>REF(SECTOR_STR,34)*1.25 AND CTOP_SECT AND CROSS(EMA(SECTOR_STR,5),EMA(SECTOR_STR,13)) AND SLOPE(SECTOR_STR,3)>SLOPE(SECTOR_STR,8)*1.42; {三维共振V7.1} DIF:=EMA(CLOSE,7)-EMA(CLOSE,18); DEA:=EMA(DIF,3); MACD_COND:=DIF>DEA AND DEA>REF(DEA,3)*1.05; {资金流向V6.1} BIGBUY:=SUM(IF(VOL/FINANCE(7)>=0.01 AND COUNT(VOL/FINANCE(7)>=0.008,3)=3, AMOUNT*0.85,0),3); FUNDFLOW:=(BIGBUY-BIGSELL)/FINANCE(7)*100*1.31; {情绪启动V4.1} 情绪启动:=CROSS(MARKET_SENT,1.42) AND COUNT(MARKET_SENT>1.18,3)>=2 AND CLOSE>EMA(CLOSE,233)*1.22; {终极信号V8.1} 盘后选股:=大盘过滤 AND DYNPETTM<8.5 AND PB_RATE<1.58 AND PEG_VAL<0.45 AND EVERY(CLOSE>EMA(CLOSE,55),10) AND FINANCE(30)/REF(MAX(FINANCE(30),0.01),4)>1.72 AND EVERY(VOL>MA(VOL,55)*1.42,5) AND MACD_COND AND CLOSE/EMA(CLOSE,55)>1.32 AND VOL/EMA(VOL,55)>1.62; {盘中预警V3.1} 盘中预警:CROSS(CLOSE,BOLL_UPPER) AND VOL>MA(VOL,34)*3.8 AND FUNDFLOW>REF(FUNDFLOW,1)*1.28 AND 情绪启动 AND CLOSE>HHV(HIGH,21) AND 大盘过滤; {资金流验证V13.1} LHB_DATA:=FINANCE(244)/CAPITAL*100; CAPITAL_INFLOW:=SUM(AMO,5)/SUM(AMO,21)>1.02 AND EVERY(V>REF(V,1)*1.28,5) AND (MAIN_FUND-REF(MAIN_FUND,3))/CAPITAL>0.22; {信号衰减模型V3.1} DECAY_WEIGHT:=EXP(-0.12*(BARSLAST(盘后选股))); SIGNAL_EMA:EMA(盘后选股*DECAY_WEIGHT,5); DRAWICON(盘后选股 AND 盘中预警, LOW, 1);```同时此代码还有什么可提升的空间,提出可行性的优化建议和方案,如何选到选股胜率达到月胜率提高至75%以上,有效信号准确率95%以上,选到资金持续流入,股票市场情绪启动,盘中异动启动主升浪的股票,及日线盘中预警选股和盘后选股,并帮我调整参数并找到最佳选股参数计算关系和信号触发条件。请帮我检查并改正错误点补全正确代码,,并替换为通达信支持的函数,生成调整优化后通达信完整代码。
最新发布
04-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值