后台登陆
后台登陆:
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
知识点一:
mysqli_query(connection,query,resultmode);
*connection必需。规定要使用的 MySQL 连接。
*query必需,规定查询字符串。
resultmode可选
返回值: 针对成功的 SELECT、SHOW、DESCRIBE 或 EXPLAIN 查询,将返回一个
mysqli_result 对象。针对其他成功的查询,将返回 TRUE。如果失败,则返回
FALSE。
用法示例:
mysqli_query($con,"SELECT * FROM websites");
mysqli_query($con,"INSERT INTO websites (name, url, alexa, country)
mysqli_query() 函数执行某个针对数据库的查询。
在这里,mysqli_num_rows($result)的返回值要大于0,才能得出flag。该函数会返回result行的数量。
知识点二:MD5函数
md5(string,raw)
string必需。规定要计算的字符串。
raw可选。规定十六进制或二进制输出格式:
TRUE - 原始 16 字符二进制格式
FALSE - 默认。32 字符十六进制数
$result=mysqli_query($link,$sql);
这句话的意思是:查询link数据库,用sql语句。
$sql = "SELECT * FROM admin WHERE username = 'admin' and password =
'".md5($password,true)."'";
而sql语句的意思是:查询表admin中的列admin,并且password等于将$password进行二进制格式的MD5加密。
参考:总之这个sql语句,后面加or'1'就可以通过验证,因为a
or b,只要满足一个条件即可。
所以造成了sql注入
总结:
实验吧里面的web题目偏向源代码审计。
(⊙﹏⊙)跟我的方向有点不符,以后就不在这做题了。。20180220
:::
:::
:::